首页 > 解决方案 > 以编程方式设置 PIN 时向用户隐藏绑定对话框 - 不适用于华为

问题描述

所以我环顾四周我想出了这个代码片段的解决方案:

private void registerBondingBroadcastReceivers() {
    final IntentFilter pairingRequestFilter = new IntentFilter(BluetoothDevice.ACTION_PAIRING_REQUEST);
    pairingRequestFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY - 1);

    context.registerReceiver(pairingRequestBroadcastReceiver, pairingRequestFilter);
}

private final BroadcastReceiver pairingRequestBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(final Context context, final Intent intent) {
        final int variant = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, BluetoothDevice.ERROR);

        if (variant == PAIRING_VARIANT_PIN) {
            String pin = "141231"
            if (pin != null) {
                boolean pinSet = device.setPin(pin.getBytes());
                abortBroadcast();
            }
        }
    }
};

因此,这对于三星 S9、Android 10 非常有效,但是,如果我使用华为手机,绑定总是在密码方法上失败。有没有办法解决这个问题?

标签: androidbluetoothhuawei-developers

解决方案


您可以联系华为并要求他们修复它,或者将华为设备从您的应用程序中列入黑名单。AFAIK 这是一个平台错误,只有华为可以修复它(感谢锁定我们的引导加载程序......)


推荐阅读