【发布时间】:2012-09-18 22:07:00
【问题描述】:
我似乎在 socket.connect() 上遇到了这个奇怪的错误:
09-18 14:41:22.968: W/System.err(2593): java.lang.NullPointerException
09-18 14:41:22.968: W/System.err(2593): at android.sec.enterprise.BluetoothUtils.**isSocketAllowedBySecurityPolicy**(BluetoothUtils.java:106)
09-18 14:41:22.968: W/System.err(2593): at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:220)
09-18 14:41:22.968: W/System.err(2593): at com._._.android._._.bluetoothmodule.BluetoothController.connectToDevice(BluetoothController.java:136)
09-18 14:41:22.976: W/System.err(2593): at com._._.android._._.controllermodule.ControllerModule.connectToDevice(ControllerModule.java:235)
09-18 14:41:22.976: W/System.err(2593): at com._._.android._._.controllermodule.ControllerModule.connectToDevice(ControllerModule.java:263)
09-18 14:41:22.976: W/System.err(2593): at com._._.android._._.service.ConnectionService.onHandleIntent(ConnectionService.java:70)
09-18 14:41:22.976: W/System.err(2593): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
09-18 14:41:22.976: W/System.err(2593): at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 14:41:22.976: W/System.err(2593): at android.os.Looper.loop(Looper.java:137)
09-18 14:41:22.976: W/System.err(2593): at android.os.HandlerThread.run(HandlerThread.java:60)
是的,我在连接之前检查套接字是否为空。我似乎只在运行 4.0.4 的 Galaxy Tab 2 上遇到这个问题。我的代码在其他设备/android 版本 [包括 JB] 上运行良好。不知道这里可能发生了什么。下面列出了一小部分,展示了我如何初始化我的套接字:
Method m = bluetoothDevice.getClass().getMethod(
"createInsecureRfcommSocket", new Class[] { int.class });
Logging.getInstance().logMessage(this.getClass().getSimpleName(), "Returned the Reflection method successfully..",Logging.LOG_ERROR);
// get readSocket
mreadSocket = (BluetoothSocket) m.invoke(bluetoothDevice, 1);
assert (mreadSocket != null) : "readSocket is Null";
if (mreadSocket != null) {
mreadSocket.connect();
}
任何帮助将不胜感激!
【问题讨论】:
-
您的应用拥有所需的所有蓝牙权限?
-
是的,它有 android.permissions.INTERNET [用于创建套接字] 以及 android.permissions.BLUETOOTH & BLUETOOTH_ADMIN
-
还没有解决方案,但我相信我在运行 4.0.3 的 Galaxy Tab 2 上会遇到类似的行为,而我的代码在 HTC One X 和 Samsung Nexus 上成功运行。回到办公室时将在 Galaxy S3 上进行测试,我怀疑这也不起作用。
-
在运行 4.0.4 的 Galaxy S3 上测试,抛出相同的异常。
标签: android samsung-mobile galaxy-tab