Как получить доступ к BluetoothPairingDialog.java в Android?

Есть ли способ принудительно нажать «кнопку сопряжения» всякий раз, когда появляется диалоговое окно сопряжения Bluetooth?

введите здесь описание изображения


person Muhammad Zeeshan    schedule 22.10.2013    source источник
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
comment
Я знаю этот метод, но я все равно хочу знать, как получить доступ к диалоговому окну сопряжения, спасибо за ответ. - person Muhammad Zeeshan; 30.10.2013