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)
はい、接続する前にソケットが null かどうかを確認しています。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();
}
どんな助けでも大歓迎です!