

ESP32とAndroid端末(xamarin.formsで作成)でBLE通信を試しているのですが  
Android 10では妙な動作(多分仕様なんでしょうが)をしたのですが、どのように解決すればいいのでしょう

やったことは、  
テスト中にほぼ仕様が固まったので、Service UUIDとcharahteristic UUIDを  
UUIDを作成するサイト(<https://www.uuidgenerator.net/>)で作ったUUIDに差し替えました

そして再度スマホでテストしたところ、  
Android7では特に問題なく動作したのですが、Android10は接続するがデバイスを発見できなくなりました  
どうやら、変更したService UUIDを検索できなくなっていました  
Bluetoothの接続を確認するアプリ(BLE Scannerというアプリ)を使って見るとデータを受信していたのですがその際  
Service UUIDが古い変更前のUUIDで受信していました

結局調べたところ、設定のBluetoothの「以前接続されていた機器」から該当のデバイス名を削除してみたところうまく新しいUUIDで接続できるようになりました

たまたまUUIDがおかしいことに気付いたので設定画面でデバイス名の削除をする事で解決しましたが  
さすがにこんなことを他人にさせるわけには行かないのですが  
端末が古いUUIDを覚え込んでしまって、新しいUUIDで接続できなくなってしまった場合、アプリからどのように処理したらいいのでしょう

設定に書き込まれた「以前接続されていた機器」を削除するようにした方がいいのでしょうか  
それても、そもそもリリースされてからservice UUIDが変わることが無いんだから気にすべきではないのでしょうか


CC BY-SA 4.0
2021-02-27T18:35:36.657
74305
2021-02-27T18:35:36.657
10098
question
c# android esp32 bluetooth-lowenergy
BLEのservice uuidのルールについて(Android10とAndroid7の動作の差について)