gpt4 book ai didi

android - BluetoothAdapter.startScan() 与 BluetoothAdapter.startLeScan()

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:26 31 4
gpt4 key购买 nike

我的目标是找到附近的蓝牙设备(LE 设备和“经典”),以便将当前可见的附近设备与我的应用使用它执行的某些功能相关联。 (不是一个或多个特定设备,而是所有设备!!!)

我所知道的:

  • startLeScan() 只会在 BLE 设备上回调
  • 这两种方法以不同的方式工作 - startBLeScan() 由我的代码通过回调管理,而经典扫描由系统进程管理,并返回通过广播找到的 BluetoothDevice

我不确定的是:

  • 假设当前设备 API 级别为 18+ startScan() 将始终发现可发现的 BLE 和经典设备。
  • BluetoothDevice.connectGatt() 添加了新的 BLE API,但也应该适用于经典蓝牙(返回 GATT 服务...)。

我想知道的:

  • 如果确实 startScan() 返回两种类型(Classic 和 BLE),那么在电池消耗、性能、良好做法和其他方面使用什么更好?

我的应用程序会定期执行后台扫描,所以我想尽可能减少电池消耗的影响。

最佳答案

您必须开始扫描 Classic Bluetooth带有 startDiscovery() 的设备并扫描 Bluetooth LE带有 startLeScan() 的设备.注意:执行设备发现对于蓝牙适配器来说是一个繁重的过程,并且会消耗大量的资源。

编辑:在装有 Android 4.4.2 的 LG Nexus 4 上 startDiscovery()查找蓝牙 LE 设备。在装有 Android 4.3 的三星 Galaxy S3 上 startDiscovery()找不到蓝牙 LE 设备。

关于android - BluetoothAdapter.startScan() 与 BluetoothAdapter.startLeScan(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21809946/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com