我使用此方法将设备与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根据其规格)。
在配对之前,我会对所有设备进行可见和可发现。另外,我不想同时将我的设备连接到多个手机。
我的代码出了什么问题?
答案 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();
}
}