android - 以编程方式设置 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 非常有效,但是,如果我使用华为手机,绑定总是在密码方法上失败。有没有办法解决这个问题?
解决方案
您可以联系华为并要求他们修复它,或者将华为设备从您的应用程序中列入黑名单。AFAIK 这是一个平台错误,只有华为可以修复它(感谢锁定我们的引导加载程序......)
推荐阅读
- vaadin - 在一个静态 HTML 中导入两个 Vaadin 嵌入
- c++ - c++ map 和 unordered_map 模板参数:使用 c++20 概念检查常见行为
- css - 当页面在粘性标题上滚动时更改标题背景颜色
- javascript - 我想使用 jQuery 获取复选框的值
- c++ - 为什么二级继承后需要限定名?
- java - 如何在构造函数中正确克隆 List?
- google-chrome - 灯塔选项卡未出现在 chrome devTool 中
- ios - 如何修复ios15中丢失的淡入淡出动画CATransition?
- gradle - Gradle如何改变homedir清理策略
- node.js - 服务器错误 SyntaxError:意外的令牌“导出”