"蓝牙分享已经停止"在Android上检测iBeacons时提醒 [英] "Bluetooth Share has stopped" alert when detecting iBeacons on Android

查看:1077
本文介绍了"蓝牙分享已经停止"在Android上检测iBeacons时提醒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的Andr​​oid iBeacon显示库从半径网络,提供iBeacons玩。过了一段时间我看到不断提示弹出出蓝色的:不幸的是,蓝牙分享已经停止。与[举报] [确定]按钮。

电话:Nexus 5的采用Android 4.4.2

这是一个坏消息,因为Nexus 5采用目前顶级的Andr​​oid手机,并使用iBeacons似乎一段时间后不能正常工作。这意味着,iBeacons不能在生产中使用蓝牙LE没有在Android上正常工作(甚至在最新版本)。

只有恢复出厂设置似乎解决这​​个问题,我不能让我的应用程序的用户这样做:/

logcat的:

  I / DEBUG(175):建立指纹:谷歌/锤头/锤头:4.4.2 / KOT49H / 937116:用户/释放键
I / DEBUG(175):修订:'11'
I / DEBUG(175):PID:5062 TID:5085,姓名:BTIF>>> com.android.bluetooth<<<
I / DEBUG(175):11(SIGSEGV),code 1(SEGV_MAPERR),故障地址00000000
I / DEBUG(175):R0,R1 FFFFFFFF R2 00007d00 R3 00007c60 74ddc308
I / DEBUG(175):R4 74ddc318 R5 00000000 R6 7568ea60 R7 7512d595
I / DEBUG(175):R8 00000002 R9 7568ea54 SL 751638cd FP 00000004
I / DEBUG(175):IP 00000000 SP 7568ea10 LR 750ad68d PC 750ad6b0 CPSR 600f0030
I / DEBUG(175):D0 000000000000000f D1 746f6d65725f6464
I / DEBUG(175):D2 D3 000000cc00000069 754bde5000000066
I / DEBUG(175):D4 0034003a00440045 D5 00390033003a0033
I / DEBUG(175):D6 D7 003a00370038003a 0030003a00380034
I / DEBUG(175):0000000000000000 D8 D9 0000000000000000
I / DEBUG(175):0000000000000000 D10 D11 0000000000000000
I / DEBUG(175):0000000000000000 D12 D13 0000000000000000
I / DEBUG(175):0000000000000000 D14 D15 0000000000000000
I / DEBUG(175):D16 D17 3fe8000000000000 3fc999999999999a
I / DEBUG(175):0000000000000000 D18 D19 0000000000000000
I / DEBUG(175):0000000000000000 D20 D21 0000004400000044
I / DEBUG(175):0000000000000000 D22 D23 0000000000000000
I / DEBUG(175):0000000000000000 D24 D25 0002a7600002a760
I / DEBUG(175):D26 D27 0707070703030303 03000000.04亿
I / DEBUG(175):D28 D29 08000000.09亿0001000000010000
I / DEBUG(175):D30 D31 010b400001088000 01108000010e0000
I / DEBUG(175):SCR 60000010
I / DEBUG(175):
I / DEBUG(175):回溯:
I / DEBUG(175):#00件0004e6b0 /system/lib/hw/bluetooth.default.so
I / DEBUG(175):#01件0004ea89 /system/lib/hw/bluetooth.default.so(btif_config_set + 156)
I / DEBUG(175):#02件0004eb91 /system/lib/hw/bluetooth.default.so(btif_config_set_int + 20)
I / DEBUG(175):#03件000345cd /system/lib/hw/bluetooth.default.so(btif_storage_set_remote_addr_type + 36)
I / DEBUG(175):#04件0004adbd /system/lib/hw/bluetooth.default.so
I / DEBUG(175):#05件0002f091 /system/lib/hw/bluetooth.default.so
I / DEBUG(175):#06件000553bd /system/lib/hw/bluetooth.default.so(gki_task_entry + 92)
I / DEBUG(175):07#PC 0000d170 /system/lib/libc.so(__thread_entry + 72)
I / DEBUG(175):08#PC 0000d308 /system/lib/libc.so(pthread_create的+ 240)
I / DEBUG(175):
I / DEBUG(175):堆栈:
I / DEBUG(175):7568e9d0 00000000
I / DEBUG(175):7568e9d4 4156f52d /system/lib/libdvm.so
I / DEBUG(175):7568e9d8 00004000
I / DEBUG(175):7568e9dc 7568ea71 [堆栈:5085]
I / DEBUG(175):7568e9e0 415d70d0
I / DEBUG(175):7568e9e4 7fffffee
I / DEBUG(175):7568e9e8 75587bd0 [匿名:libc_malloc]
I / DEBUG(175):7568e9ec 000007c6
I / DEBUG(175):7568e9f0 74ddc318 [匿名:libc_malloc]
I / DEBUG(175):7568e9f4 00007c60
I / DEBUG(175):7568e9f8 00007c60
I / DEBUG(175):7568e9fc 74ddc308 [匿名:libc_malloc]
I / DEBUG(175):7568ea00 74ddc318 [匿名:libc_malloc]
I / DEBUG(175):7568ea04 000007c6
I / DEBUG(175):7568ea08 7568ea60 [堆栈:5085]
I / DEBUG(175):7568ea0c 750ad68d /system/lib/hw/bluetooth.default.so
I / DEBUG(175):#00 7568ea10 00000041
I / DEBUG(175):7568ea14 7512f561 /system/lib/hw/bluetooth.default.so
I / DEBUG(175):7568ea18 7568ea60 [堆栈:5085]
I / DEBUG(175):7568ea1c 750ada8d /system/lib/hw/bluetooth.default.so(btif_config_set + 160)
I / DEBUG(175):#01 7568ea20 7568ea54 [堆栈:5085]
I / DEBUG(175):7568ea24 7568ea54 [堆栈:5085]
I / DEBUG(175):7568ea28 00000001
I / DEBUG(175):7568ea2c 00000001
I / DEBUG(175):7568ea30 764b890a [匿名:libc_malloc]
I / DEBUG(175):7568ea34 40146384
I / DEBUG(175):7568ea38 7516ea94
I / DEBUG(175):7568ea3c 00000007
I / DEBUG(175):7568ea40 7512dff5 /system/lib/hw/bluetooth.default.so
I / DEBUG(175):7568ea44 750adb95 /system/lib/hw/bluetooth.default.so(btif_config_set_int + 24)
I / DEBUG(175):02#00000004 7568ea48
I / DEBUG(175):7568ea4c 00000002
I / DEBUG(175):7568ea50 7512f561 /system/lib/hw/bluetooth.default.so
I / DEBUG(175):7568ea54 00000001
I / DEBUG(175):7568ea58 40146384
I / DEBUG(175):7568ea5c 750935d1 /system/lib/hw/bluetooth.default.so(btif_storage_set_remote_addr_type + 40)


解决方案

编辑:现在有这部分解决的这里

好消息是,这种低级错误的Andr​​oid影响很大谁蓝牙开发商铺谁已经出现了大量的蓝牙设备在同一个地方工作,开发商或人。去一个BLE或iBeacon显示黑客马拉松几乎肯定会触发它。幸运的是,我们的应用程序的大多数最终用户不这样做。

在内部缓冲区保存最近扫描蓝牙LE MAC地址的占用漏洞被触发。它填补后,扫描新的蓝牙LE设备将导致Android的蓝牙服务崩溃和重新启动。你看到的对话框是从Android的蓝牙共享服务,这不是死亡处理干净蓝牙服务重启重启和死机本身。这里是 Android的bug报告。

该漏洞可以影响确实蓝牙LE扫描,或查找iBeacons,不只是Android的iBeacon显示库任何应用程序或库。但同样,并不是所有的用户将体验到它。我在半径网络,我们有几十个蓝牙LE设备传输的所有时间的工作,它用了四个月时间之前,我曾经看到我的Nexus 4的对话 - 它只是想出了两个星期前。从那时起,我一直在努力表征问题,并找出解决办法。

我已经能够简单地通过进入飞行模式几秒钟,然后走出来消除这种情况。然而这并不是一个permenant修复,如再次满溢Android的缓冲区将导致其返回。我们仍在研究更加自动化的解决方案。

I'm using Android iBeacon Library from Radius Networks to play with iBeacons. After some time I see constantly alerts popping out of the blue: "Unfortunately, Bluetooth Share has stopped." with [Report] [OK] buttons.

Phone: Nexus 5 with Android 4.4.2.

That's a bummer since Nexus 5 is currently top Android phone and using iBeacons seems not working after some time. That means that iBeacons cannot be used in production as Bluetooth LE does not work properly on Android (even on the newest release).

Only factory reset seems to fix the problem and I cannot ask users of my app to do so :/.

Logcat:

I/DEBUG   (  175): Build fingerprint: 'google/hammerhead/hammerhead:4.4.2/KOT49H/937116:user/release-keys'
I/DEBUG   (  175): Revision: '11'
I/DEBUG   (  175): pid: 5062, tid: 5085, name: BTIF  >>> com.android.bluetooth <<<
I/DEBUG   (  175): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I/DEBUG   (  175):     r0 ffffffff  r1 00007d00  r2 00007c60  r3 74ddc308
I/DEBUG   (  175):     r4 74ddc318  r5 00000000  r6 7568ea60  r7 7512d595
I/DEBUG   (  175):     r8 00000002  r9 7568ea54  sl 751638cd  fp 00000004
I/DEBUG   (  175):     ip 00000000  sp 7568ea10  lr 750ad68d  pc 750ad6b0  cpsr 600f0030
I/DEBUG   (  175):     d0  000000000000000f  d1  746f6d65725f6464
I/DEBUG   (  175):     d2  000000cc00000069  d3  754bde5000000066
I/DEBUG   (  175):     d4  0034003a00440045  d5  00390033003a0033
I/DEBUG   (  175):     d6  003a00370038003a  d7  0030003a00380034
I/DEBUG   (  175):     d8  0000000000000000  d9  0000000000000000
I/DEBUG   (  175):     d10 0000000000000000  d11 0000000000000000
I/DEBUG   (  175):     d12 0000000000000000  d13 0000000000000000
I/DEBUG   (  175):     d14 0000000000000000  d15 0000000000000000
I/DEBUG   (  175):     d16 3fe8000000000000  d17 3fc999999999999a
I/DEBUG   (  175):     d18 0000000000000000  d19 0000000000000000
I/DEBUG   (  175):     d20 0000000000000000  d21 0000004400000044
I/DEBUG   (  175):     d22 0000000000000000  d23 0000000000000000
I/DEBUG   (  175):     d24 0000000000000000  d25 0002a7600002a760
I/DEBUG   (  175):     d26 0707070703030303  d27 0300000004000000
I/DEBUG   (  175):     d28 0800000009000000  d29 0001000000010000
I/DEBUG   (  175):     d30 010b400001088000  d31 01108000010e0000
I/DEBUG   (  175):     scr 60000010
I/DEBUG   (  175): 
I/DEBUG   (  175): backtrace:
I/DEBUG   (  175):     #00  pc 0004e6b0  /system/lib/hw/bluetooth.default.so
I/DEBUG   (  175):     #01  pc 0004ea89  /system/lib/hw/bluetooth.default.so (btif_config_set+156)
I/DEBUG   (  175):     #02  pc 0004eb91  /system/lib/hw/bluetooth.default.so (btif_config_set_int+20)
I/DEBUG   (  175):     #03  pc 000345cd  /system/lib/hw/bluetooth.default.so (btif_storage_set_remote_addr_type+36)
I/DEBUG   (  175):     #04  pc 0004adbd  /system/lib/hw/bluetooth.default.so
I/DEBUG   (  175):     #05  pc 0002f091  /system/lib/hw/bluetooth.default.so
I/DEBUG   (  175):     #06  pc 000553bd  /system/lib/hw/bluetooth.default.so (gki_task_entry+92)
I/DEBUG   (  175):     #07  pc 0000d170  /system/lib/libc.so (__thread_entry+72)
I/DEBUG   (  175):     #08  pc 0000d308  /system/lib/libc.so (pthread_create+240)
I/DEBUG   (  175): 
I/DEBUG   (  175): stack:
I/DEBUG   (  175):          7568e9d0  00000000  
I/DEBUG   (  175):          7568e9d4  4156f52d  /system/lib/libdvm.so
I/DEBUG   (  175):          7568e9d8  00004000  
I/DEBUG   (  175):          7568e9dc  7568ea71  [stack:5085]
I/DEBUG   (  175):          7568e9e0  415d70d0  
I/DEBUG   (  175):          7568e9e4  7fffffee  
I/DEBUG   (  175):          7568e9e8  75587bd0  [anon:libc_malloc]
I/DEBUG   (  175):          7568e9ec  000007c6  
I/DEBUG   (  175):          7568e9f0  74ddc318  [anon:libc_malloc]
I/DEBUG   (  175):          7568e9f4  00007c60  
I/DEBUG   (  175):          7568e9f8  00007c60  
I/DEBUG   (  175):          7568e9fc  74ddc308  [anon:libc_malloc]
I/DEBUG   (  175):          7568ea00  74ddc318  [anon:libc_malloc]
I/DEBUG   (  175):          7568ea04  000007c6  
I/DEBUG   (  175):          7568ea08  7568ea60  [stack:5085]
I/DEBUG   (  175):          7568ea0c  750ad68d  /system/lib/hw/bluetooth.default.so
I/DEBUG   (  175):     #00  7568ea10  00000041  
I/DEBUG   (  175):          7568ea14  7512f561  /system/lib/hw/bluetooth.default.so
I/DEBUG   (  175):          7568ea18  7568ea60  [stack:5085]
I/DEBUG   (  175):          7568ea1c  750ada8d  /system/lib/hw/bluetooth.default.so (btif_config_set+160)
I/DEBUG   (  175):     #01  7568ea20  7568ea54  [stack:5085]
I/DEBUG   (  175):          7568ea24  7568ea54  [stack:5085]
I/DEBUG   (  175):          7568ea28  00000001  
I/DEBUG   (  175):          7568ea2c  00000001  
I/DEBUG   (  175):          7568ea30  764b890a  [anon:libc_malloc]
I/DEBUG   (  175):          7568ea34  40146384  
I/DEBUG   (  175):          7568ea38  7516ea94  
I/DEBUG   (  175):          7568ea3c  00000007  
I/DEBUG   (  175):          7568ea40  7512dff5  /system/lib/hw/bluetooth.default.so
I/DEBUG   (  175):          7568ea44  750adb95  /system/lib/hw/bluetooth.default.so (btif_config_set_int+24)
I/DEBUG   (  175):     #02  7568ea48  00000004  
I/DEBUG   (  175):          7568ea4c  00000002  
I/DEBUG   (  175):          7568ea50  7512f561  /system/lib/hw/bluetooth.default.so
I/DEBUG   (  175):          7568ea54  00000001  
I/DEBUG   (  175):          7568ea58  40146384  
I/DEBUG   (  175):          7568ea5c  750935d1  /system/lib/hw/bluetooth.default.so (btif_storage_set_remote_addr_type+40)

解决方案

EDIT: There is now a partial solution for this here.

The good news is that this low-level Android bug largely affects developers or people who work in Bluetooth dev shops who have been around a large number of Bluetooth devices in the same place. Going to a BLE or iBeacon hackathon will almost certainly a trigger it. Fortunately, most end users of our apps do not do this.

The bug is triggered when an internal buffer holding recently scanned Bluetooth LE Mac addresses fills up. After it fills, scanning a new Bluetooth LE device will cause Android's Bluetooth service to crash and restart itself. The dialog you see is from Android's Bluetooth Share service, which dies not cleanly handle the restart of the Bluetooth Service restart and crashes itself. Here is the Android bug report.

The bug can affect any app or library that does Bluetooth LE scanning, or looks for iBeacons, not just the Android iBeacon Library. But again, not all users will experience it. I work at Radius Networks where we have dozens of Bluetooth LE devices transmitting all the time, and it took four months before I ever saw that dialog on my Nexus 4 -- it only came up two weeks ago. Since then, I have been working to characterize the problem and find workarounds.

I have been able to clear the condition simply by going into Airplane Mode for a few seconds then coming out. This, however is not a permenant fix, as overflowing Android's buffer again will cause it to return. We are still researching more automated solutions.

这篇关于&QUOT;蓝牙分享已经停止&QUOT;在Android上检测iBeacons时提醒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆