2014-02-18 1 views
0

Android 용 Radius Networks iBeacon 라이브러리를 사용하여 첫 번째 Android 앱을 제작하고 있습니다. 라이브러리를 구현하는 것은 정말 쉽습니다. 저는 반쯤 괜찮은 데모 응용 프로그램을 사용하고 있습니다 (덕분에 많은 데비전입니다!).bt-hci btu_ble_process_adv_pkt는 여전히 iBeaconManager.unBind (이) 이후에 실행됩니다. onDestroy()라고합니다

나는 이제 꼬임 문제를 해결하려고 노력 중입니다. 내 응용 프로그램은 사용자가 3 개의 iBeacons 근처로 이동하여 3 개의 체크 박스를 체크해야하는 데모로 작동합니다. 그런 다음 버튼을 다시 사용하여 다시 시작할지 묻는 활동이 표시됩니다.

'completed'활동을 표시하는 함수도 'checkbox'(ranging) 활동을 finish()하고 onDestroy는 iBeaconManager의 unBind 메소드를 호출합니다.

간헐적으로 iBeacons를 다시 시작한 후에는 LogCat이 영원히 끊어집니다.

02-18 14:52:38.800: I/bt-hci(1392): BLE HCI(id=62) event = 0x02) 
02-18 14:52:38.800: I/bt-hci(1392): btu_ble_process_adv_pkt 
02-18 14:52:38.850: I/bt-hci(1392): BLE HCI(id=62) event = 0x02) 
02-18 14:52:38.850: I/bt-hci(1392): btu_ble_process_adv_pkt 
02-18 14:52:38.910: W/bt-btif(1392): bta_dm_ble_observe BTM_BleObserve failed. status 2 
02-18 14:52:38.980: I/bt-hci(1392): BLE HCI(id=62) event = 0x02) 

대개 앱의 두 번째/세 번째 런에서 발생합니다. 내 직감은 때문에

iBeaconManager.unBind(this); 

제대로 BT 스택을 해제하지에 실패, 그래서 두 개의 인스턴스가 겹치는 결말의 것입니다.

아무데도 갈 수없는 지점에 도달했기 때문에 누구나이 부분을 밝힐 수 있습니까?

더 많은 코드를보고 싶다면 알려주십시오.

앤드류

+0

사실 나는이 값을 같은 것으로 설정했고 400ms 이하로 설정했습니다. iBeaconManager.setForegroundScanPeriod (ranging_frequency); iBeaconManager.setBackgroundScanPeriod (100000); 누군가 아이디어가 있다면 BackgroundScan을 완전히 막을 수있는 방법이 있는지 알고 싶습니다. 환호 – roowilliams

+0

아마도이 질문 자체는 문제가됩니다. IBeaconService는 IBeaconManager와 제대로 바인딩 해제()하면 완전히 중지되어야합니다. – davidgyoung

답변

0

나는 문제는 서비스에서 바인딩 해제/바인딩 함께 할 수 있는가 의심 최저. 이것은 인 경우 코드가 나중에 다시 바인딩되기 전에 항상 바인드 해제되는 경우 아무런 문제가 없어야합니다. 코드 (또는 문제를 재현하는 간소화 된 버전)를 보지 않고 무엇이 잘못 될지 확실히 말하기는 어렵습니다.

바인딩 할 때 로그 문을 추가하고 바인딩을 해제 한 다음 응용 프로그램을 실행할 때 다른 문을 추가하는 것이 좋습니다 일치하는지 확인하십시오. Android 라이프 사이클이 까다로울 수 있습니다. 나는 당신이 불일치가 있다는 것을 알게 될 것입니다. Destroy()가 항상 전화를 받는다는 것이 확실합니까?

다른 클라이언트가 바인딩되지 않은 경우 iBeaconManager.unbind()이 호출되면 IBeaconService가 중지되고 LogCat이이를 확인해야 함을 이해합니다. 나중에 다시 바인딩하면 다시 시작됩니다. 이거 보이니?

다른 팁 : Android iBeacon 라이브러리를 사용하여 휴대 전화에서 실행중인 앱이 두 개인 경우 두 개의 서비스 사본이 실행됩니다. 이것은 설계 상으로는 문제가되지 않지만 LogCat 출력을 혼동스럽게 만들 수 있습니다. 설정을 사용하여 디버깅을 돕기 위해 이러한 앱 중 하나를 제외한 모든 앱을 중지하거나 제거하십시오.

0

이 문제도 있었고 IBeaconLibrary 자체의 버그를 추적했습니다. RadiusNetworks에 문제를보고하려고했지만 GitHub에서 이미 발견 된 (또는 이와 유사한 원인으로 인한) 버그가 발견되었으며 현재 코드에서 수정되었습니다. 불행히도 아직 공식 릴리스가 아니므로 GitHub에서 소스를 다운로드하고 직접 라이브러리를 만들어야합니다.하지만 그렇게 한 후에는 더 이상이 문제가 나타나지 않습니다.

관련 문제