BluetoothDevice のリストがあり、PIN を持つそのうちの 1 つとプログラムでペアリングしたいと考えています。
ここでこの件について議論されているいくつかの投稿を読みましたが、2 つの非常に異なるアプローチを見つけました。
最初のオプション:メソッドを呼び出しますdevice.createBond()
。次に、BroadcastReceiver でBluetoothDevice.ACTION_PAIRING_REQUEST
アクションをリッスンし、そこで呼び出します
device.setPin(PIN_BYTES);
device.setPinConfirmation(true);
完全な例と投稿をここで見ることができます: How to pair Bluetooth device programmatically Android
2 番目のオプション:最初にを呼び出しdevice.setPin(PIN_BYTES)
、次に を呼び出した場合はどうなりますか? 例えば:device.setPinConfirmation(true)
device.createBond()
if(connConfig!=null && connConfig.bluetooth!=null){
device.setPin(connConfig.bluetooth.pass);
device.setPairingConfirmation(true);
device.createBond();
}
その後、BroadcastReceiver でアクションをリッスンすることを忘れて、イベントBluetoothDevice.ACTION_PAIRING_REQUEST
だけに注意を払いBluetoothDevice.ACTION_BOND_STATE_CHANGED
ますか? Android +プログラムでBluetoothを介してデバイスをペアリング
する最初のコードの回答を参照してください。私の知る限り、その男はペアリングに PIN を使用していないので、setPin メソッドも使用する必要があります。
どちらが良いと思いますか?
何か不足していますか?ところで: 古いプラットフォームをターゲットにしていないため、リフレクションは使用していません。