当前位置: 首页 > 知识库问答 >
问题:

如何在Android(api 19)中抑制蓝牙配对请求对话框?

窦弘义
2023-03-14

我使用api 19中的setPin()自动与蓝牙设备配对。我通过广播接收器做到这一点。。。检查配对请求,然后自动配对。这样做的原因是为了防止用户在我的应用程序中更改pin后重新输入。

有没有办法抑制蓝牙配对请求的通知/对话框?我的代码正确地更改了手机上的PIN码,并将其连接到设备上,因此这部分不是问题。我只是想摆脱对话框/弹出窗口,这样用户就不会感到困惑。我不介意它弹出一秒钟,只要它自动关闭。

    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();

        // Get the BluetoothDevice object from the Intent
        if (btDevice.ACTION_PAIRING_REQUEST.equals(action)) {
            Log.i(TAG, "XXXXXXXXXXXXXX PAIRING REQUEST RECEIVED XXXXXXXXXXXXXXXX");

            int bondState = btDevice.getBondState();

            if (bondState == BluetoothDevice.BOND_NONE || bondState == BluetoothDevice.BOND_BONDING) {                  
                String pinString = settings.getString("com.hiqautomation.iopener.pin", null);

                byte[] pinBytes = pinString.getBytes();
                btDevice.setPin(pinBytes);
            }
        }
    }
    };

共有2个答案

廉鸿运
2023-03-14

我使用Xamarin,但应该有一个java等价物。

我在设置引脚后调用方法InvokeAbortBroadcast()

 Device.SetPin(Encoding.ASCII.GetBytes(pin));
 InvokeAbortBroadcast();
葛意远
2023-03-14

你运气好吗?我也做了同样的事。。。下面应该有帮助。。。。

    Method m = bt_device.getClass().getMethod("cancelBondProcess", (Class[]) null);
    m.invoke(bt_device, (Object[]) null);

出于兴趣,您在输入pin码时是如何隐藏软键盘的。这就是我目前正在处理的问题https://stackoverflow.com/questions/25290319/android-how-to-disable-soft-keyboard-during-bluetooth-pairing

小地毯

 类似资料:
  • 嗨,我要开发一个应用程序,所以我有一个设备(服务器)与3个客户端。我做了所有的验证,打开蓝牙,找到设备,所有的工作都很好。但当我要连接一个设备时,我不知道会发生什么。 我正在使用下一个代码,当我单击一个我想连接它的设备时。我只有我的应用程序在母设备中。 这里我有一个问题,如果它没有配对会发生什么?如果我尝试连接,它会自动配对吗? 我的UUID是:“00001101-0000-1000-8000-0

  • 问题内容: 我正在创建一个应通过蓝牙连接到特定设备的应用程序。 无论设备是否已配对,我都希望我的应用程序与此设备连接。 现在我有这个 但是此功能仅连接到配对的设备。如果我的设备尚未配对,我想将其配对。不知道该怎么做。 有人可以给我任何建议吗? 问题答案: 首次请求权限。 然后使您的设备可发现: 然后创建一个 BroadcastReceiver 来监听系统中的动作: 并通过注册以下 Boardcas

  • 蓝牙配对到底是如何工作的?在配对过程中,每个设备之间的通信是什么? 有人告诉我,如果您想与设备B配对: > 这似乎是不准确的,所以有人能够进一步扩展或实际解释如何/什么是沟通的结果,以成功配对的设备吗? 我曾考虑将这些研究中的一些纳入大学的最后一年项目中,但至少需要先了解一些蓝牙编程配对的知识。 如果您能帮助描述这些初始通信是如何工作的,我们将不胜感激。 在我的研究中,我听说过“停车模式”和“被动

  • 我正在Visual Studio 2015中用C语言为运行Windows IoT Core的Raspberry PI 2设备开发。 对于我的应用程序,我需要配对和取消配对蓝牙设备 我可以获得配对/未配对/所有蓝牙设备的列表吗<类似于内置管理网站的蓝牙页面(http://[设备IP]:8080/Bluetooth.htm) 我找到了一个例子(https://github.com/Microsoft/

  • 我能够配对蓝牙键盘,但无法连接,使其成为输入设备。我查阅了开发商网站上提供的文件-http://developer.android.com/guide/topics/connectivity/bluetooth.html#Profiles 它说Android Bluetooth API提供了以下蓝牙配置文件的实现,但您可以实现接口BluetoothProfile来编写自己的类来支持特定的蓝牙配置文

  • 是否可以自动连接到蓝牙低能耗(BLE)设备? Android文档表明[](https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context,boolean,android.bluetooth.BluetoothGattCallback)