gpt4 book ai didi

android - 在 Marshmallow 中使用蓝牙扫描定位精度

转载 作者:行者123 更新时间:2023-11-29 01:25:20 24 4
gpt4 key购买 nike

在 Android 4.3 中,Android 实现了始终在线的 WiFi 理念,即使您关闭了 Wi-Fi,设备和应用程序仍然可以扫描 WiFi 网络以提高定位的准确性。与使用网络三角测量一起,这是另一种尽快获取当前位置的方法,而不必过多依赖 GPS 信号。

Android M 更进一步,将蓝牙扫描添加到等式中。在 M 的位置设置下,您会在菜单中找到扫描选项,可以在其中打开和关闭 Wifi 和蓝牙扫描。启用后,蓝牙扫描可能会寻找像信标这样的 BLE 设备,以更快地定位。

location setting on M

图像已调整大小。点击查看全尺寸

这在未来在购物中心、机场和各种室内或地下场所中可能非常有用,在这些场所中,蓝牙信标的覆盖范围和分布可能超过缓慢或不可能的 GPS 信号锁定。事实上,它始终处于开启状态,只要应用程序需要固定位置就可以访问,这比您必须记住手动打开蓝牙更方便。

任何人都可以帮助提供一些见解或示例代码,以便在没有打开主要蓝牙设置的情况下使用 BLE 扫描信标吗?

最佳答案

我想通了。

我们必须编写一个系统应用程序并使用

BluetoothAdapter.enableBLE()

方法。此方法适用于使用低功耗蓝牙扫描附近设备的特殊/系统应用程序,主要用于定位精度。即使在设备设置中关闭了蓝牙。然后我们可以使用

BluetoothAdapter.LeScanCallback

回调以获取设备详细信息。

示例:

调用方法:

mBluetoothAdapter.enableBLE())

回调:私有(private)蓝牙适配器.LeScanCallback mLeScanCallback = 新的 BluetoothAdapter.LeScanCallback() {

        @Override
public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {

if( device == null ){

System.out.println("-------onLeScan "+device);
}

runOnUiThread(new Runnable() {
@Override
public void run() {
mLeDeviceListAdapter.addDevice(device);
mLeDeviceListAdapter.notifyDataSetChanged();
}
});
}
};

谢谢

关于android - 在 Marshmallow 中使用蓝牙扫描定位精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34414216/

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