我正在使用低功耗蓝牙创建一个应用程序。我发现了一件有趣的事情。我知道对于 API 级别 23
或更高级别,除了蓝牙之外,您还需要授予位置权限才能进行扫描。但我不知道即使从设置中关闭蓝牙,您也可以扫描蓝牙设备。我关闭了蓝牙(但位置仍然打开)但我仍然可以从扫描结果中看到 ble 设备。
这是 android 中的错误吗,android 内部使用蓝牙而用户没有意识到它?或者这是否记录在我找不到的地方。
最佳答案
没有。这是完全正常的。在 Android M 中,他们调整了权限/添加了使用蓝牙定位的功能。为此,您的手机只需要监听其他 BT 设备。它不需要广播自己。这是一个小得多的隐私问题,因为您不会将自己的存在泄露给其他 BT 设备。
您可以在 Android Police 上阅读更多相关信息
我承认面向用户的描述很奇怪:“...扫描蓝牙设备,即使蓝牙已关闭。”显然,BT 天线并没有真正关闭。它必须打开才能监听其他 BT 设备。但在软件层面,BT 栈并没有广播自己的地址。
目前尚不清楚这是否会节省电池生命周期或节省多少电池生命周期,因为 BT 天线仍处于打开状态。
关于android - 蓝牙扫描在没有打开蓝牙的情况下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49452971/