我希望在没有用户交互的情况下以编程方式配对BluetoothDevice。所以我尝试了 setPin()和 setPasskey()方法,但两种方法总是返回false。对于这个问题,我从here获得了帮助。
我使用的代码:
private void PairDevice(BluetoothDevice pDevice, String pin)
{
try
{
Log.d("pairDevice()", "Start Pairing...");
Method pairMethod = pDevice.getClass().getMethod("setPin", new Class[] {byte[].class});
Boolean lReturn = (Boolean) pairMethod.invoke(pDevice, pin.getBytes("UTF8"));
Log.e("pairDevice",""+lReturn);
if(lReturn.booleanValue())
{
Log.d("pairDevice()", "Pairing Finished...");
Method bondMethod = pDevice.getClass().getMethod("createBond");
bondMethod.invoke(pDevice);
Log.d("pairDevice()", "createBond Finished...");
}
}
catch(Exception ex)
{
Log.e("pairDevice()", ex.getMessage());
}
}
我做错了什么?有没有其他方式与BluetoothDevice配对而无需用户交互?