0

リモートデバイスへのBluetooth接続を作成する次のAndroidコードがあります。リモートデバイスが範囲外になったことを確認する方法はありますか?

private void connectToRobot(BluetoothDevice bd){            
    try{
        Method m = bd.getClass().getMethod("createRfcommSocket", 
            new Class[] {int.class});
        socket = (BluetoothSocket) m.invoke(bd, 1);

        socket.connect();               
        Toast.makeText(AndroidBluetooth.this,"CONNECTED ", 
            Toast.LENGTH_LONG).show();

        os = socket.getOutputStream();
    }catch (Exception e){        
        Log.e(tag,"Error interacting with remote device [" + 
            e.getMessage() +"]");               
    }        
}

私が今得ることができる唯一の情報は、BluetoothSocketが成功するかどうかです。接続の強さを判断する方法はありますか?

4

1 に答える 1

0

デバイスが範囲外にあるのか、ユーザーによって切断されたばかりなのかを判断できる機能はありませんが、RSSIを監視し、切断する前にRSSIが減少した場合は、範囲外です。切断時に文字列信号がある場合は、ユーザーが切断したと呼びます。

回答が役に立った場合は、それを承認済みの回答としてマークして、承認率を向上させ、将来これらの投稿を表示する可能性のある他の人を支援する必要があります。(あなたは受け入れられない答えでいくつかの質問があります)。

于 2012-12-06T04:27:00.190 に答える