当前位置: 首页 > 知识库问答 >
问题:

需要在Android 10.0上为蓝牙低功耗扫描启用位置

白浩气
2023-03-14

将我的Pixel XL升级到Android 10.0版后,只有在打开“位置”的情况下,蓝牙低能量(BLE)扫描才能工作。

到目前为止,这还不是一个问题,它正在运行在Android 9.0、8.0和6.0.1上的多台设备上。

我的应用程序仅使用BluetoothLeScannerstart Scan在前台扫描(列表

我的应用程序有FINE_LOCATION,COARSE_LOCATION和蓝牙权限,我尝试添加ACCESS_BACKGROUND_LOCATION权限,但没有运气。

Android 10.0中是否对应用程序扫描蓝牙设备有更严格的要求,我找不到有关此的任何信息,希望我不必要求用户打开位置以使我的应用程序正常工作。


共有2个答案

洪弘亮
2023-03-14

在android 10上,请求这三个许可

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>

在清单中声明,并在运行时询问

岳宣
2023-03-14

从Android 10开始,现在需要打开ACCESS_FINE_LOCATION才能执行蓝牙操作。这样做的原因是蓝牙可用于收集有关用户位置的信息(例如使用BLE信标),为此应声明相关应用程序权限。

对于Android 9和更低版本,ACCESS\u Rough\u位置就足够了,这可能就是为什么你的应用程序可以正常工作的原因。

更多信息可在此处找到:-

  • https://developer.android.com/guide/topics/connectivity/bluetooth#Permissions
  • 蓝牙LE扫描在后台的Android M上不工作

我希望这能有所帮助。

 类似资料:
  • 我目前正在开发一个应用程序,将使用蓝牙低能耗。 我正在使用以下链接, http://developer.android.com/samples/BluetoothLeGatt/src/com.example.android.bluetoothlegatt/DeviceScanActivity.html 我无法扫描周围的BLE设备。 要扫描设备,

  • jd.readBLECharacteristicValue(Object object) 读取低功耗蓝牙设备的特征值的二进制数据值。注意:必须设备的特征值支持 read 才可以成功调用。 参数名 类型 默认值 必填 说明 deviceId string 是 蓝牙设备 id serviceId string 是 蓝牙特征值对应服务的 uuid characteristicId string 是 蓝牙

  • 问题内容: 我正在编写一个Android BLE应用程序,并且试图获得某个特性的权限。我已经设法通过character.getProperties()获取特征属性,并且它返回非零值,但是,即使我确定特征具有PERMISSION_WRITE_ENCRYPTED_MITM(0x00000040,当我使用getPermission()方法时,它也会返回0。 )。 这是一个代码片段 难道我做错了什么?是否

  • ap.connectBLEDevice(OPTION | deviceId, CALLBACK) 连接低功耗蓝牙设备。可直接传入一个字符串作为 OPTION.deviceId。 OPTION 参数说明 名称 类型 必填 描述 deviceId String 是 蓝牙设备 id 错误码说明 error 描述 12 链接失败 代码示例 <script src="https://gw.alipayobj

  • 我的应用程序应连接到蓝牙LE设备。通常使用mBluetoothAdapter执行设备扫描。Stratescan(mLeScanCallback) 。回调为您提供有关可用设备的信息。 如果要连接到专用设备,请执行以下操作 然后 在我看来,连接到BLE设备的唯一需要是知道BLE地址,然后通过以上两个步骤连接到它。因此,如果我已经知道一个BLE地址(例如,它写在BLE设备的标签上),我就不需要执行BLE

  • 问题内容: 我正在与Linux一起使用低功耗蓝牙调制解调器。我为此使用命令行选项。我可以使用以下命令找到设备: 它对我来说很好用,也可以使用以下方式广播设备: 它也工作正常。但是我想向调制解调器设备添加可以被其他设备检测到的服务和特性。我已经尝试过了,但是对我不起作用。有谁知道如何使用ubuntu中的命令行工具向外围设备添加服务和特性? 编辑: 我的调制解调器正在广播,但无法探索其他BLE设备的服