我已经构建了一个 android 应用程序,它可以使用 BluetoothSocket.connect() 通过蓝牙(经典蓝牙)连接到外围设备并与之进行一些交互。该应用程序在三星 Galaxy S3(4.3) 和 Note 3(4.3) 上运行良好,但在 Nexus 5 上时,该应用程序无法连接到设备。
我有 2 个 Nexus 5,它们都无法连接,是什么让我认为 Nexus 5 一定有问题,而不是我。但是当我使用设备制造商支持的应用程序连接到设备时,始终可以建立连接,即使使用 Nexus 5。
所以我想,Nexus 5 在经典蓝牙上一定有问题,导致建立连接不太容易,可能有一些方法可以解决它。
抱歉我的英语很差。感谢您提供有关如何解决此问题的任何指示。
这是我的 logcat 信息的 3 个块:
三星 Galaxy S3 的 logcat 信息(已工作):
04-01 17:03:33.340 D/BloodPressureService﹕ connect to: 8C:DE:52:2C:68:6D
04-01 17:03:33.360 D/BluetoothUtils﹕ isSocketAllowedBySecurityPolicy start : device null
04-01 17:03:33.360 W/BluetoothAdapter﹕ getBluetoothService() called with no BluetoothManagerCallback
04-01 17:03:33.360 D/BloodPressureService﹕ setState() 0 -> 1
04-01 17:03:33.365 I/BloodPressureMonitorFragment﹕ MESSAGE_STATE_CHANGE: 1
04-01 17:03:35.095 D/BloodPressureService﹕ connected
04-01 17:03:35.095 D/BloodPressureService$ConnectedThread﹕ create ConnectedThread
04-01 17:03:35.105 I/BloodPressureService$ConnectedThread﹕ BEGIN mConnectedThread
04-01 17:03:35.110 D/BloodPressureService﹕ setState() 1 -> 2
04-01 17:03:35.125 I/BloodPressureMonitorFragment﹕ MESSAGE_STATE_CHANGE: 2
第一次 Nexus 5 的 logcat 信息(工作。不知道为什么,我以前从未见过。但只有一次):
04-01 17:14:37.577 D/BloodPressureService﹕ connect to: 8C:DE:52:2C:68:6D
04-01 17:14:37.577 D/BloodPressureService﹕ setState() 0 -> 1
04-01 17:14:37.577 I/BloodPressureMonitorFragment﹕ MESSAGE_STATE_CHANGE: 1
04-01 17:14:37.587 W/BluetoothAdapter﹕ getBluetoothService() called with no BluetoothManagerCallback
04-01 17:14:37.587 D/BluetoothSocket﹕ connect(), SocketState: INIT, mPfd: {ParcelFileDescriptor: FileDescriptor[47]}
04-01 17:14:39.207 D/BloodPressureService﹕ connected
04-01 17:14:39.207 D/BloodPressureService$ConnectedThread﹕ create ConnectedThread
04-01 17:14:39.207 D/BloodPressureService﹕ setState() 1 -> 2
04-01 17:14:39.207 I/BloodPressureService$ConnectedThread﹕ BEGIN mConnectedThread
04-01 17:14:39.217 I/BloodPressureMonitorFragment﹕ MESSAGE_STATE_CHANGE: 2
第二次 Nexus 5 的 logcat 信息(没有工作。再也不会工作):
04-01 17:14:59.977 D/BloodPressureService﹕ connect to: 8C:DE:52:2C:68:6D
04-01 17:14:59.977 D/BloodPressureService﹕ setState() 0 -> 1
04-01 17:14:59.977 I/BloodPressureMonitorFragment﹕ MESSAGE_STATE_CHANGE: 1
04-01 17:14:59.977 W/BluetoothAdapter﹕ getBluetoothService() called with no BluetoothManagerCallback
04-01 17:14:59.987 D/BluetoothSocket﹕ connect(), SocketState: INIT, mPfd: {ParcelFileDescriptor: FileDescriptor[56]}