0

Bluetooth LE을 사용하는 Android에 iPhone 앱을 포팅합니다. iPhone 앱에서 맞춤형 블루투스 주변 기기를 스캔하고 기기 UUID 번호를 문자열로 저장합니다. 이렇게하면 나중에 장치가 다시 연결될 때이를 비교할 수 있습니다.Android 블루투스 LE 주변기기 IP가 정적입니까?

BluetoothDevice.ACTION_UUID은 안드로이드에서 주변기기 UUID를 읽는 데 사용되지만 가정용 기기가 연결될 때 UUID를 사용하는 방법을 잘 모르겠습니다. 누구든지 이걸로 도와 줄 수 있니?

또한 안드로이드는 getAddress()을 호출 할 때 주변기기의 IP 주소처럼 보이는 것을 제공합니다. 나는이 IP 주소가 주변 장치가 처음 발견되었을 때 안드로이드 장치에 의해 임의로 생성되었다고 가정합니다.

향후 IP를 시작할 때 각 블루투스 주변 기기를 식별하는 데 사용할 수있는 IP는 정적입니까? 아니면 시간이 지남에 따라 변경 될 수 있습니까? 장치 재부팅 후.

감사합니다.

+0

[BluetoothDevice # ACTION_UUID] (http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#ACTION_UUID)를 보셨습니까? – ChuongPham

+0

UUID를 브로드 캐스트합니다. 나는 주변에서 그것을 읽고 싶다. – Darren

+0

어쩌면이 [link] (https://developer.android.com/guide/topics/connectivity/bluetooth-le.html)가 도움이 될 수 있습니다. – ChuongPham

답변

1

해당 UUID를 잊어 버리십시오. 나중에 주변 장치를 식별하기 위해 대신 사용해야하는 것은 주변 장치의 Bluetooth 주소입니다. BluetoothDevice 클래스에는 정확히 getAddress() 메서드가 있습니다.

그런 다음 LeScanCallback에서이 주소를 다시 확인하십시오 (문자열 동일성).

+0

감사. 'getAddress()'가 리턴하는 것은 정확하게 내 질문에 유감스럽게 언급 한 것입니다. 블루투스 주변 장치에는 이와 같은 주소가 없으며 UUID가 있으므로 기본적으로 Android는이 주소를 주변 장치에 할당합니다. 장치의이 주변 장치에 대해이 주소가 항상 동일하게 할당됩니까? iOS에는 주변 장치의 할당 된 IP 주소를 자주 변경하는 습관이 있지만 UUID를 사용하는 것은 항상 동일하다는 것을 알고 있습니다. 감사합니다 – Darren

+1

@Darren 명백한 보안상의 이유 때문에 iOS (그리고 아마 Android도 마찬가지입니다)가 변경되면 ** 자신의 주소 **가 때때로 (15 분 동안) 믿습니다. 주변 기기의 주소는 일반적으로 ** 정적 **이지만 변경 될 것으로 예상하지 마십시오. 또한,'getAddress()'는 광고 패킷에서 전송 된 주변 장치의 정적 주소를 반환합니다. ** ** 전화 번호가 아닌 **입니다. –

+0

우수. 그게 내가 알아야 할 전부 야. 따라서 주소를 저장하고 향후 연결에서 비교할 수 있습니다. 고맙습니다. – Darren