我正在尝试检测蓝牙设备当前是否使用API 14或更高版本连接到
Android设备.看起来我应该可以使用BluetoothSocket.isConnected()方法,但无论我做了什么,到目前为止我只是因为任何事情而得到假回复,无论是否连接.
AndroidManifest包含以下行:
以及有问题的代码:
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Set pairedDevices = mBluetoothAdapter.getBondedDevices();
for (BluetoothDevice device : pairedDevices) {
Log.i(Constants.LOG_TAG, String.format(Locale.US, "Device: %s connected: %b", device.getName(), isConnected(device))); //$NON-NLS-1$z
}
}
private boolean isConnected(BluetoothDevice device) {
BluetoothSocket socket = null;
// Get a BluetoothSocket for a connection with the given BluetoothDevice
UUID SPP_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
try {
socket = device.createRfcommSocketToServiceRecord(SPP_UUID);
} catch (IOException e) {
Log.e(Constants.LOG_TAG, e.getMessage()); //$NON-NLS-1$z
return false;
}
Log.i(Constants.LOG_TAG, socket.toString()); //$NON-NLS-1$z
return socket.isConnected();
}
不会抛出任何错误,它只会在100%的时间内返回“false”.有什么东西我做得不对吗?