当前位置: 代码迷 >> Android >> 关于蓝牙socket 服务器端首次accept总出错!该如何解决
  详细解决方案

关于蓝牙socket 服务器端首次accept总出错!该如何解决

热度:52   发布时间:2016-05-01 12:03:44.0
关于蓝牙socket 服务器端首次accept总出错!
我使用蓝牙socket通信,服务器端使用socket = mmServerSocket.accept()这个语句,可是这里总是报错! 错误如下:

java.io.IOException: Not able to register SDP record for mango
at android.bluetooth.BluetoothAdapter.createNewRfcommSocketAndRecord(BluetoothAdapter.java:890)
at android.bluetooth.BluetoothAdapter.listenUsingRfcommWithServiceRecord(BluetoothAdapter.java:813)
at com.card.test.receivecard$AcceptThread.<init>(receivecard.java:118)
at com.card.test.receivecard.onStart(receivecard.java:96)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
at android.app.Activity.performStart(Activity.java:3797)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1620)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
at dalvik.system.NativeStart.main(Native Method)
null
threadid=9: thread exiting with uncaught exception (group=0x401f6560)
ATAL EXCEPTION: Thread-10
java.lang.NullPointerException
at com.card.test.receivecard$AcceptThread.run(receivecard.java:132)


我的接收端代码片段如下:

  private class AcceptThread extends Thread {
       private final BluetoothServerSocket mmServerSocket;
       private InputStream mmInStream;
 
       public AcceptThread() {

           final String SPP_UUID = "00001101-0000-1000-8000-00805F9B34FB";   
           UUID uuid = UUID.fromString(SPP_UUID); 
           BluetoothServerSocket tmp = null;
           try {
               tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord(Name,uuid);
           } catch (IOException e) { 
            e.printStackTrace();
           }
           mmServerSocket = tmp;
       }

       public void run() {
           BluetoothSocket socket = null;
        
           // Keep listening until exception occurs or a socket is returned
           while (true) {
               try {
  相关解决方案