Android蓝牙低功耗 - 自定义服务未获得扫描回调

时间:2016-04-07 18:00:12

标签: android bluetooth-lowenergy

我有一个不寻常的问题。我开发了一个简单的应用程序,使用BTLE来发现iBeacons。我创建了2个应用程序的变种。第一个包含MainActivity中的所有代码,并使用回调运行BTLE方法。这很好用,我从我的灯塔得到了结果。一切都好。

第二个代码具有相同的代码,但我已将其放入服务中,我可以从我的MainActivity调用它。该服务有效,但当蓝牙启动扫描关闭时,它永远不会进入扫描回调。这很奇怪,因为它使用SAME代码作为第一个应用程序。它变得陌生。我将我的代码带到了另一个开发人员,并将带有该服务的应用程序放到他的PC上,然后将其连接到他的手机上。它与回调按预期工作完美配合。我不明白发生了什么。

我们使用相同版本的Android 6.01,拥有BT和位置的正确权限。

我已经删除了我的Android Nexus 5并重新安装了Android 6.01,但同样的行为正在发生。我很难过。它不是代码,它可以在另一台机器上运行。电话。

有没有人知道我可能会从哪里开始寻找解决方案?是否有可能我的gradle构建正在做一些服务&回调?

我没有发布代码,因为它在其他地方工作不太可能是问题。如果需要,我可以发布LogCat日志..

谢谢!

LOG CAT使用服务:我的标签是MJC和BTLE

10527-10527/ D/BTLE DE: IN MAIN ACTIVITY 
      AFTER LOAD tagUUID: 0BB14465-A514-4966-A6E0-0096201E22GG

 10527-10635/ D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true

 10527-10635/ I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: 
       QUALCOMM Build: 10/21/15, 369a2ea, I96aee987eb
       I/OpenGLRenderer: Initialized EGL, version 1.4

 10527-10527/ D/BTLE Svc :: BTLE Service Started

 10527-10527/ D/BTLE Svc :: onStartCommand : 
       INPARAM UUID: 0BB18329-A514-4944-A6e0-0096201E33EE

 10527-10527/ D/MJC onStartCommand: inside build version check

 10527-10527/ D/MJC scanLeDevice: start scanLeDevice

 10527-10527/ D/MJC scanLeDevice: START scan

 10527-10527/ D/BluetoothAdapter: STATE_ON

 10527-10538/ D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=5

 10527-10527/ D/MJC onStartCommand: scan device called

 10527-10635/ V/RenderScript: 0xa0b29000 Launching thread(s), CPUs 4

 10527-10527/ D/MJC scanLeDevice: inside STOP scan

 10527-10527/ D/BluetoothAdapter: STATE_ON

 10527-10527/ D/BTLE Svc :: BTLE Service Stopped

1 个答案:

答案 0 :(得分:1)

好的,所以我设法通过在我的Nexus 5上重新安装Android 6来解决我的问题,但这次我不允许安装任何额外的应用程序(Facebook,Outlook GOW等)。当我再次运行我的应用程序时,它响应正常,服务回调运行良好。

目前我不知道我的任何普通应用程序是否阻止或干扰我的应用程序服务,似乎不太可能。但是,我会一次安装它们并测试我的应用程序并报告我是否遇到同样的问题。

我害怕这不是一个答案,但这就是野兽的本性。