1

こんにちは、Bluetooth ライブラリを実装しようとしています。その中で、rfcomm ソケットを一度接続してから、すべての呼び出しで再利用したいと考えています。connectメソッドを呼び出す必要があるかどうかを知るために、接続されているかどうかを知りたいです。Bluetooth ソケットのソース コードには何も見つかりません。これはすべてネイティブ呼び出しであり、API で isConnected メソッドが定義されていないためです... 経験のある人はいますか?

4

3 に答える 3

2

ここで同様の質問に答えました。API レベル 14 から、BluetoothSocket クラスに isConnected メソッドが利用可能になりました。API レベルが低い場合は、ソケットを開き、作業を行ってから再度閉じることができます。ただし、考慮しなければならないことがいくつかあります。詳細については、リンクされた回答を参照してください。

于 2012-07-03T08:27:03.843 に答える
1

メンバー変数に接続の状態を維持させると思います。接続が成功したら、trueに設定し、ソケットの入力ストリームから常にバイトを読み取るループをループするスレッドを開始し、そのスレッドでIOExceptionが発生した場合は、フラグをfalseに設定します。

于 2011-05-19T00:23:48.183 に答える
1

isConnected() は私には機能しません。次のようなことを試してください:

try {
  mSocket.connect()
} catch (IOException e) {
  // Create a new socket
  // mSocket.connect();
}
于 2013-06-08T01:43:16.977 に答える