我需要检查OS 2.0 – 2.3中当前连接的BT耳机(不仅仅是配对).在引入蓝牙耳机类的API版本11之前,此类功能不存在.但是在先前的API中已经存在一个名为BluetoothHeadset的类,但它不能公开访问.这是它的文档:
http://www.kiwidoc.com/java/l/x/android/android/9/p/android.bluetooth/c/BluetoothHeadset.所以,我试图使用反射来调用“isConnected”方法,但我在反射时非常可怕,而且我收到错误java.lang.IllegalArgumentException:object is not a班级的实例.
我使用BluetoothDevice.getBondedDevices()获得了配对设备列表,我尝试在每个设备上使用isConnected()方法.这是代码:
public boolean isBtDevConnected(BluetoothDevice btDev){
boolean connected = false;
try {
Class> BTHeadset = Class.forName("android.bluetooth.BluetoothHeadset");
Method isConnected = BTHeadset.getMethod("isConnected", new Class[] {BluetoothDevice.class});
connected = isConnected.invoke(BTHeadset, new Object[] {btDev});
}
}
} catch (Exception e) {
WriteToLog(e);
}
return connected;
}
我在调用该方法的行上得到了异常,但我不确定我做错了什么.