1

だから私はこの小さなコードを実行しようとしています

public AcceptThread() {
    // Use a temporary object that is later assigned to mmServerSocket,
    // because mmServerSocket is final
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    BluetoothServerSocket tmp = null;
    try {
        // MY_UUID is the app's UUID string, also used by the client code
        tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("Server", MY_UUID);
    } catch (IOException e) { }
    mmServerSocket = tmp;
}

しかし、tmpを割り当てる必要がある行から続行すると、それはまだnullです。Bluetoothがアクティブになり、すべてがアクティブになりますが、到達したときにtmpが何にも設定されません。何かアイデアはありませんか?そしてところで。このメソッドは、2.2 androidマシンでは機能しません。これは、2.2マシンではその行でクラッシュしますが、4.1.2デバイスではクラッシュしないためです。

答えるためにさらに情報が必要な場合は、それを求めて、私の能力の限りを尽くしてください。

4

2 に答える 2

1

ブルートゥースを使用する許可をアプリに与えていなかったことがわかったので、解決しました。

于 2012-12-04T13:12:38.063 に答える
1

私はAndroid開発にまったく慣れておらず、同じ問題に遭遇しました。他の人がこれに遭遇した場合は、さらにヘルプがあります:

これはサーバー側で発生しているため、接続の受け入れスレッドを開始する前に、検出可能性が有効になっていることを確認してください。これは、適切なresultCodeが受信されたときに、onActivityResult()メソッドでスレッドを開始することによって実行できます。

于 2014-01-14T21:46:40.570 に答える