我一直在各种设备上使用Altbeacon的参考应用程序,并且在logcat中看到以下错误。我没有设置任何前台或后台扫描时间,我正在使用带有引导区域的前台服务。
诺基亚8上的Android 8.1 在后台关闭应用程序:
Logcat->
function_name({ price : 1 })
function_name({});
应用已打开并在前台运行:
Logcat->
12-12 13:03:27.156 10226-10226/net.beaconsdkdemo I/ScanJob: Scan job running for 300000 millis
12-12 13:03:27.159 2277-4762/? E/BtGatt.GattService: App 'net.beaconsdkdemo ' is scanning too frequently
12-12 13:04:53.335 2277-4762/? E/BtGatt.GattService: App 'net.beaconsdkdemo ' is scanning too frequently
12-12 13:05:01.628 2277-4762/? E/BtGatt.GattService: App 'net.beaconsdkdemo ' is scanning too frequently
12-12 13:05:06.596 2277-4762/? E/BtGatt.GattService: App 'net.beaconsdkdemo ' is scanning too frequently
12-12 13:08:27.374 10226-10226/net.beaconsdkdemo I/ScanJob: Scan job running for 300000 millis
12-12 13:08:27.377 2277-2290/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
12-12 13:10:13.493 2277-2615/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
12-12 13:15:13.661 2277-2615/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
12-12 13:15:21.623 2277-2615/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
12-12 13:15:26.928 2277-2615/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
三星Galaxy Mini 5上的Android 6
Logcat->
2-12 13:20:04.391 10226-10226/net.beaconsdkdemo I/BeaconService: set scan intervals received
12-12 13:20:04.393 10226-10226/net.beaconsdkdemo I/CycledLeScanner: Adjusted nextScanStartTime to be Wed Dec 12 13:15:21 GMT+11:00 2018
12-12 13:20:13.848 2277-2615/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
12-12 13:20:46.932 2277-4762/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
12-12 13:20:51.345 2277-4762/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
12-12 13:20:53.556 2277-2615/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
12-12 13:21:06.829 2277-2290/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
12-12 13:21:20.099 2277-2290/? E/BtGatt.GattService: App 'net.beaconsdkdemo' is scanning too frequently
Android 8的“扫描频率太高”条目是否表示该应用将在某个时候被杀死?
过去扫描nextScanStartTime时间是什么?
12-12 13:01:59.480 3390-3559/? E/BtGatt.GattService: [GSIM LOG]: gsimLogHandler: net.beaconsdkdemo, msg: MESSAGE_STOP_SCAN
12-12 13:02:01.595 26097-26097/net.beaconsdkdemo E/CycledLeScannerForLollipop: Scan failed: app cannot be registered
是由于我的应用程序配置,Android 6的“扫描失败:无法注册应用程序”还是蓝牙故障?
我注意到在Android 8上,一段时间后,该服务被终止并且没有重新启动。
答案 0 :(得分:1)
对此问题here进行了长时间的讨论。
我们所知道的摘要:该日志行似乎是由华为特定的Android定制引起的。具体细节是专有的,尚未发布,因此我们只能对所发生的事情进行最少的逆向工程。基本思想是,华为增加了一些代码,用于监视在后台启动的扫描次数,并在某些未知条件下,如果启动的次数超过未发布的阈值,则开始阻止这些扫描。
虽然仅影响某些华为设备,但看到此日志消息会有后果。看到此信息后,扫描基本上将被阻止。
如果您使用具有默认扫描设置的前台服务,则这些扫描设置将以1100毫秒的速率扫描,然后以0毫秒的速率扫描,这意味着扫描将每1100毫秒重新开始。一旦您在1100毫秒的时间内两次检测到相同的信标,此循环将关闭,并且扫描将持续进行,这将导致这些日志消息消失。因此,如果您的应用在信标周围时开始扫描,那么在华为上可能不会发生这种情况。但是,如果它在信标不在时启动,它就会出现。
当前,此问题没有已知的解决方法,因为即使每15分钟扫描一次也会在华为设备上触发此错误消息。似乎使用的屏幕进行信标扫描在华为设备上根本不可靠。
可能值得尝试针对电池优化将您的应用列入白名单,以查看是否有帮助。如果您发现任何新信息,请发布在library discussion thread上。