android - 蓝牙扫描在没有打开蓝牙的情况下工作

标签 android bluetooth bluetooth-lowenergy

我正在使用低功耗蓝牙创建一个应用程序。我发现了一件有趣的事情。我知道对于 API 级别 23 或更高级别,除了蓝牙之外,您还需要授予位置权限才能进行扫描。但我不知道即使从设置中关闭蓝牙,您也可以扫描蓝牙设备。我关闭了蓝牙(但位置仍然打开)但我仍然可以从扫描结果中看到 ble 设备。

这是 android 中的错误吗,android 内部使用蓝牙而用户没有意识到它?或者这是否记录在我找不到的地方。

最佳答案

没有。这是完全正常的。在 Android M 中,他们调整了权限/添加了使用蓝牙定位的功能。为此,您的手机只需要监听其他 BT 设备。它不需要广播自己。这是一个小得多的隐私问题,因为您不会将自己的存在泄露给其他 BT 设备。

您可以在 Android Police 上阅读更多相关信息

我承认面向用户的描述很奇怪:“...扫描蓝牙设备,即使蓝牙已关闭。”显然,BT 天线并没有真正关闭。它必须打开才能监听其他 BT 设备。但在软件层面,BT 栈并没有广播自己的地址。

目前尚不清楚这是否会节省电池生命周期或节省多少电池生命周期,因为 BT 天线仍处于打开状态。

关于android - 蓝牙扫描在没有打开蓝牙的情况下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49452971/

相关文章:

android - Android Design Support 库的 Eclipse 错误

android - React Native Android 发布构建失败 - Gradle

java - Android 蓝牙第一次连接失败

bluetooth - Xamarin iOS 中未收到蓝牙授权提示

ios - 是否可以让iBeacon应用程序在没有GPS的情况下正常工作?

android - 如何在不崩溃的情况下中断 onBackPressed 线程?

java - 创建一个用于分发的 Android Jar 库

android - 如何在 android 中获取 BLE 通知?

Android BLE MTU size,有人闻过吗?

linux - Bluetooth Low Energy [4.2 及更高版本] - Linux 上 Qt 大于 20 字节的特性