Android AltBeacon在停止蓝牙后继续扫描

Android AltBeacon在停止蓝牙后继续扫描,android,bluetooth-lowenergy,ibeacon-android,altbeacon,android-ibeacon,Android,Bluetooth Lowenergy,Ibeacon Android,Altbeacon,Android Ibeacon,我正在开发一个应用程序,它也使用背景扫描。看 我观察到一种奇怪的行为。当我从设备设置中停止蓝牙时,应用程序会一直扫描并调用didEnterRegion和didExitRegion。通知栏中的蓝牙符号已消失。 我还可以在logcat中看到D/BluetoothLeScanner:onScanResult()。。。入口 这怎么可能 我们在一些设备上收到了其他一些关于这种行为的报告。确切原因尚不清楚,但我怀疑某些设备没有在Android设置UI中准确反映蓝牙状态。即使当用户禁用蓝牙时,如果某些应用程序

我正在开发一个应用程序,它也使用背景扫描。看

我观察到一种奇怪的行为。当我从设备设置中停止蓝牙时,应用程序会一直扫描并调用didEnterRegion和didExitRegion。通知栏中的蓝牙符号已消失。 我还可以在logcat中看到D/BluetoothLeScanner:onScanResult()。。。入口


这怎么可能

我们在一些设备上收到了其他一些关于这种行为的报告。确切原因尚不清楚,但我怀疑某些设备没有在Android设置UI中准确反映蓝牙状态。即使当用户禁用蓝牙时,如果某些应用程序已经在使用它,那么它也有可能保持打开状态,不管用户界面上的设置如何

编辑:根据评论中的反馈,如果在应用程序激活之前或期间启用蓝牙功能,一些三星S3机型似乎会保留特定于应用程序的蓝牙访问权限。即使您在系统用户界面中关闭了蓝牙,无论用户界面如何显示,所有正在运行的应用程序都会保持打开状态。关闭蓝牙后启动的其他应用程序的行为就像它确实关闭了一样

确认这一点的一种方法是将设备置于此状态,然后重新启动。此应用程序将向用户显示一个对话框,告诉他们在应用程序启动时关闭蓝牙时打开蓝牙。此测试将独立确认蓝牙是否真的关闭,而不管用户界面报告的设置是什么

除了对上述测试的结果进行评论外,了解设备的型号、Android版本和内部版本号也是非常有用的,所有这些都可以在设置->关于手机中找到


完全披露:我是该项目的首席开发人员。

是的,定位应用程序要求打开蓝牙。我测试的设备是三星S4,安卓5.0.1,内部版本号为LRX22C.I9505XXUHOJ2。我对Galaxy S5也有同样的问题。在开始测距信标后,Android未能关闭蓝牙(用户界面说它已关闭)。据我记忆所及,这个问题是在我将Android从KitKat升级到棒棒糖后提出的。另外,在测试同一个应用程序时,我对LG G2和G3没有同样的问题。所以,这个问题可能与三星的固件或驱动程序有关。在这种情况下它是否检测到信标?是的,但很奇怪。它交替调用双入口区域和双出口区域。我将再次检查并报告。我再次测试,是的,它在这些条件下检测到信标。有趣。请参阅我的答案中的编辑。