블루투스 장치에서 정보를받는 Android 앱을 작성 중입니다. 우리 고객은 특정 조건에 따라 Bluetooth 장치가 이름을 바꿀 것을 제안했습니다. 가장 간단한 예를 들면 이름이 "xxx-ON"이고 경우에 따라 "xxx-OFF"입니다. 내 앱은이 BT 송신기 (BluetoothAdapter.startDiscovery()를 사용)를 찾고 그 이름에 따라 다른 작업을 수행하기로되어 있습니다. 나는 블루투스 장치와 페어링하지 않을 것이다 (가능하다면, 아마 여러 안드로이드 장치와 여러 BT 송신기로 작동하기로되어 있으므로 좋은 생각이 될 것이라고 확신 할 수 없다).이름 캐싱을 방지하고 검색시 블루투스 이름 변경을 감지하는 방법
내 코드는 BT 장치를 감지하고 이름을 찾는 데 잘 작동합니다. 또한 장치가 꺼지면 다음에 찾는 시간을 감지 할 수 있습니다. 그러나 그것이 거기에 있고 이름이 바뀌면, 나는 옛 이름을 집어 든다. 어딘가에 캐시되어있는 것으로 보인다. 블루투스 장치가 꺼지더라도 다음 번에 감지 할 때 이전 이름이 계속 표시됩니다.
이 문제는 Google 코드 : here에서 발견되었지만 주어진 해결 방법 ("연결 시도")을 사용하는 방법조차도 분명하지 않았습니다. 아무도이 일을 행운이 있었나요? 코드를 공유 할 수 있습니까?
캐시 된 이름을 삭제하고 다시 검색하는 간단한 방법이 있습니까? 항상 최신 이름을 찾습니다. 비 단순한 방법조차도 좋을 것입니다 (저는 뿌리를 내린 장치를 위해 글을 쓰고 있습니다).
감사
고마워요. 분명히 내가가는 길입니다. BT 송신기 이름이 바뀌 었습니다. BT 장치가 꺼져 있으면 실제로 데리러 와야 할 것 같습니다. 그것이 없어지면 나는들을 수있는 다른 행동이 있는가? (방송이 아닌). 문구 작성을 도와 주시면 다른 질문으로 기꺼이 답변 드리겠습니다. – Kibi
"내가 방송을 보지 못하면 듣기 위해 할 수있는 다른 행동이 있습니까 (방송이 아님)." 연결되어있는 경우 ACTION_ACL_DISCONNECTED를 사용하여 사라지는 시점을 확인할 수 있지만 그렇지 않으면 fetchUuidsWithSdp와 같은 새 연결을 만들거나 다른 검색을 시도해야합니다. 발견은 매우 비싼 작업이기 때문에 가능한 한 작게 수행해야합니다. – Tom