开发者

Android Bluetooth in tab view force close error

I'm implementing an outdoor locator application based on GPS.

I use tabview where in the first tab there's the map and the GPS and in the second tab Bluetooth connection.

On the emulator the first tab works just fine and the second tab I can't test.

When I launch it on Android device, the application is forced to close and I get this error and I can't figure what's wrong with the application.

Any help will be very much appreciated,

`06-05 23:31:36.961: ERROR/AndroidRuntime(3889): FATAL EXCEPTION: main

 06-05 23:31:36.961: ERROR/AndroidRuntime(3889): java.lang.NoSuchMethodError:        android.bluetooth.BluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at trail.com.BluetoothChatService$AcceptThread.<init>(BluetoothChatService.java:280)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at trail.com.BluetoothChatService.start(BluetoothChatService.java:119)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at trail.com.BluetoothChat.onResume(BluetoothChat.java:144)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.Activity.performResume(Activity.java:3823)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3124)
06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:170)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.LocalActivityManager.dispatchResume(LocalActivityManager.java:518)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.ActivityGroup.onResume(ActivityGroup.java:58)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.Activity.performResume(Activity.java:3823)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3124)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3149)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2064)
06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.os.Handler.dispatchMessage(Handler.java:99)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.os.Looper.loop(Looper.java:123)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at android.app.ActivityThread.main(ActivityThread.java:4633)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at java.lang.reflect.Method.invokeNative(Native Method)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at java.lang.reflect.Method.invoke(Method.java:521)

06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at com.android.internal.os.Z开发者_如何学PythonygoteInit.main(ZygoteInit.java:616)
06-05 23:31:36.961: ERROR/AndroidRuntime(3889):     at dalvik.system.NativeStart.main(Native Method)

06-05 23:31:36.971: ERROR/RequestQueueHelper(3939): [Thread-10/10] Next pending job not found!!

I call listenUsingInsecureRfcommWithServiceRecord at the following part:

public AcceptThread(boolean secure) {
        BluetoothServerSocket tmp = null;
        mSocketType = secure ? "Secure":"Insecure";

        // Create a new listening server socket
        try {
            if (secure) {
                tmp = mAdapter.listenUsingRfcommWithServiceRecord(NAME_SECURE,
                    MY_UUID_SECURE);
            } else {
                tmp = mAdapter.listenUsingInsecureRfcommWithServiceRecord(
                        NAME_INSECURE, MY_UUID_INSECURE);
            }
        } catch (IOException e) {
            Log.e(TAG, "Socket Type: " + mSocketType + "listen() failed", e);
        }
        mmServerSocket = tmp;
    }


possible solution is apply try- catch block and try running the app.

try{
public AcceptThread(boolean secure) { BluetoothServerSocket tmp = null; mSocketType = secure ? "Secure":"Insecure";
}
catch(Exception e){
e.printStackTrace();
}

Also check the os version of the device you are having ...

This fatal exception occurs due to the reason that may be your device os version is lower and the method is not there in the device ROM.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜