以编程方式配对蓝牙设备

时间:2015-12-14 14:12:53

标签: android android-bluetooth

我使用此方法将设备与Android手机配对:

private void pairDevice(BluetoothDevice device) {
    try {
        device.getClass().getMethod("setPairingConfirmation", boolean.class).invoke(device, true);
        device.getClass().getMethod("cancelPairingUserInput").invoke(device);
        Method m = device.getClass().getMethod("createBond", (Class[]) null);
        m.invoke(device, (Object[]) null);
    } catch (Exception e) {
        Toast.makeText(getActivity(), "Error on pairing devices", Toast.LENGTH_LONG).show();
    }
}

我在三台设备上检查了它。关于拥有4.2.2版本的android和另外两个设备使用4.4.2版本的android。

pairDevice方法适用于这两个4.4.2设备。但是它在4.2.2设备上出现java.lang.reflect.InvocationTargetException错误。这三款设备都具有蓝牙V4(v4.0,A2DP,LE根据其规格)。

在配对之前,我会对所有设备进行可见和可发现。另外,我不想同时将我的设备连接到多个手机。

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

试试这段代码吧,它适用于我。

  private void pairDevice(BluetoothDevice device) {
            try {
                Method method = device.getClass().getMethod("createBond", (Class[]) null);
                method.invoke(device, (Object[]) null);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }