Есть ли способ принудительно нажать «кнопку сопряжения» всякий раз, когда появляется диалоговое окно сопряжения Bluetooth?
Как получить доступ к BluetoothPairingDialog.java в Android?
comment
stackoverflow.com/questions/17168263 /
- person Tom   schedule 23.10.2013
Ответы (1)
Я не знаю, как получить доступ к диалоговому окну сопряжения, но мне удалось «форсировать» сопряжение следующим образом:
1) зарегистрируйте BroadcastReceiver для действия:
android.bluetooth.device.action.PAIRING_REQUEST
2) как только действие получено, «принудительно» ввести PIN-код с помощью отражения:
String DEVICE_PIN = "12345";
final BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (intent.getAction().equals("android.bluetooth.device.action.PAIRING_REQUEST")) {
byte[] pin = (byte[]) BluetoothDevice.class.getMethod("convertPinToBytes", String.class).invoke(BluetoothDevice.class, ARDUINO_PIN);
BluetoothDevice.class.getMethod("setPin", byte[].class).invoke(device, pin);
}
У меня это работало на GB и ICS (не знаю, работает ли это на более новых версиях).
person
Stefano S.
schedule
26.10.2013
Я знаю этот метод, но я все равно хочу знать, как получить доступ к диалоговому окну сопряжения, спасибо за ответ.
- person Muhammad Zeeshan; 30.10.2013