Android蓝牙代码在2.2上工作正常但在2.3或2.3.3上没有

时间:2012-04-26 12:25:59

标签: android bluetooth ioexception

我正在使用代码进行蓝牙连接,

public void run() 
{
    try 
    {




        Method m = mBluetoothDevice.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
        mBluetoothSocket = (BluetoothSocket) m.invoke(mBluetoothDevice, 1);


       // mBluetoothSocket = mBluetoothDevice.createRfcommSocketToServiceRecord(applicationUUID);
        mBluetoothAdapter.cancelDiscovery();

        mBluetoothSocket.connect();





    }
    catch (IOException eConnectException) 
    {
        Log.d(TAG, "CouldNotConnectToSocket", eConnectException);
         closeSocket(mBluetoothSocket);
         return;
    } catch (SecurityException e) {

        Log.d(TAG, "CouldNotConnectToSocket", e);
        closeSocket(mBluetoothSocket);
    } catch (NoSuchMethodException e) {

        Log.d(TAG, "CouldNotConnectToSocket", e);
        closeSocket(mBluetoothSocket);
    } catch (IllegalArgumentException e) {
        Log.d(TAG, "CouldNotConnectToSocket", e);
        closeSocket(mBluetoothSocket);
    } catch (IllegalAccessException e) {
        Log.d(TAG, "CouldNotConnectToSocket", e);
        closeSocket(mBluetoothSocket);
    } catch (InvocationTargetException e) {
        Log.d(TAG, "CouldNotConnectToSocket", e);
        closeSocket(mBluetoothSocket);
    }
}

它在Karbonn设备上工作正常,这是Android 2.2,当我在三星Galaxy Y和索尼Ericson Xperia mini上尝试相同的代码时,它不起作用... 可能是什么问题......亲切地帮助......

1 个答案:

答案 0 :(得分:0)

您是否在清单中设置了权限?

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>

你的例外是什么?

编辑: 根据这个 http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#ACTION_ACL_DISCONNECTED 这是一个不应该发生的低级别例外。

How to programmatically tell if a Bluetooth device is connected? (Android 2.2) 这对你有帮助吗?