経由でサービスを登録しました
BluetoothServerSocket bs = BluetoothAdapter.getDefaultAdapter().listenUsingInsecureRfcommWithServiceRecord("someName" , UUID.fromString(myUuid) );
私の質問は、このサービスで使用されているチャネルを特定するプログラムによる方法はありますか?
============================= 別の解決策=================== ====
: anserw @Skaard-Solo に感謝しますが、リフレクションを使用してソケットを作成すると、これに uuid を提供できません。
私はいくつかの調査を行い、BluetoothServerSocket からチャネルを取得できる簡単な関数を作成しました。
public int getChannel(BluetoothServerSocket bsSocket){
Field[] f = bsSocket.getClass().getDeclaredFields();
int channel = -1;
for (Field field : f) {
if(field.getName().equals("mChannel")){
field.setAccessible(true);
try {
channel = field.getInt(bsSocket);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
field.setAccessible(false);
}
}
return channel;
}