setPin()在eclipse中显示错误,“setPin()未定义为BluetoothDevice”

时间:2012-02-08 08:59:20

标签: android bluetooth

我找不到很多 BluetoothDevice 方法,例如setPasskey()setPin()setPairingConfirmation()setRemoteOutOfBandData()

我也在 Android 网站上搜索过,但我找不到它。当我在eclipse的程序中使用这些方法时,它向我显示一个错误:它未定义类型 BluetoothDevice

现在这些已经过时了吗?如果是,那么相同类型的新方法是什么。

1 个答案:

答案 0 :(得分:0)

假设配对过程仅由平台提供的应用程序执行! 这意味着此应用程序可以访问隐藏的API。例如,您可以找到hidden API for Bluetooth here。 强烈建议不要使用隐藏API,因为它可以在下一个Android版本中发布而不会发出警告。 如果您仍然计划使用此API最安全的方法是使用反射:

try {
    Class<? extends BluetoothDevice> c = device.getClass(); // BluetoothDevice.class
    Method createBond = c.getMethod("createBond");
    Object result = createBond.invoke(device);
    Boolean castedResult = (Boolean)result;
    Log.d(TAG, "Result: " + castedResult.toString());
} catch (SecurityException e) {
    e.printStackTrace();
} catch (NoSuchMethodException e) {
    e.printStackTrace();
} catch (IllegalArgumentException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
} catch (InvocationTargetException e) {
    e.printStackTrace();
}

easy use hidden API还有替代方法,但我没有尝试过。