阻止显示BluetoothPairingDialog

时间:2018-07-17 16:07:37

标签: android android-bluetooth android-dialog

我正在开发的应用程序必须具有使用默认引脚连接到特定蓝牙设备的能力。为此,我编写了以下方法:

public static void pair( BluetoothDevice device ) {

    if ( ! Bluetooth.paired.contains( device ) ) {

        BroadcastReceiver receiver = new BroadcastReceiver() {

            @Override
            public void onReceive( Context context , Intent intent ) {

                if ( intent.getAction().equals( BluetoothDevice.ACTION_PAIRING_REQUEST ) ) {

                    BluetoothDevice device = intent.getParcelableExtra( BluetoothDevice.EXTRA_DEVICE );

                    try {

                        device.getClass().getMethod( "setPin" , byte[].class ).invoke( device , device.getClass().getMethod( "convertPinToBytes" , String.class ).invoke( device , "1234" ) );

                    } catch ( Exception exception ) {

                        exception.printStackTrace();

                    }

                    Resources.CONTEXT.unregisterReceiver( this );

                }

            }

        };

        Resources.CONTEXT.registerReceiver( receiver , new IntentFilter( BluetoothDevice.ACTION_PAIRING_REQUEST ) );

        try {

            device.getClass().getMethod( "createBond" ).invoke( device );

        } catch ( Exception exception ) {

            exception.printStackTrace();

        }

    }

}

该方法在大多数情况下都有效:它与给定的蓝牙设备配对,但是蓝牙配对对话框仅显示了不到一秒钟的时间。

该对话框似乎由“ BluetoothPairingDialog.java”表示: https://github.com/aosp-mirror/platform_packages_apps_settings/blob/master/src/com/android/settings/bluetooth/BluetoothPairingDialog.java

所以我要阻止此对话框显示吗?

PS:我知道关于stackoverflow的这个话题还有更多的帖子,但是问者没有得到任何答案,或者他们得到了对我没有帮助的答案。

0 个答案:

没有答案