4

最近、ペアリングプロセスをプログラムで機能させようとしましたが、成功しました。しかし、最近、私のアプリケーションのユーザーがいくつかの「興味深い」デバイスに接続できることを発見しました。そのため、接続するデバイスを選択するようにユーザーに促す必要があります

そのため、ユーザーをすでにペアリングされているBluetoothデバイスに接続する必要があります。しかし、私の努力はどれもうまくいきません。次を使用して、ペアリングプロセスを再度実行してみました。

tmp = device.createRfcommSocketToServiceRecord(MY_UUID);

また、次のとおりです。

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

これは私が実装したものであり、私の電話を私の埋め込まれたBluetoothデバイスとペアリングする唯一の有効な方法です

だから私の質問は:

  • ペアリングされたデバイスを切断してから、別の組み込みデバイスに接続することはできますか?新しいデバイスに接続しようとしましたが、うまくいきません。
4

1 に答える 1

2

残念ながら、あなたの問題が何であるか完全にはわかりません。すでにペアリングされている Bluetooth デバイスにソケットを作成できないということですか?

まず、デバイスが既にペアリングされている場合は、ペアリング プロセスを再度実行する必要はありません。通信用のソケットを作成するだけで済みますが、デバイスが通信できない場合は失敗します。私は最近これに関連していくつかのことを行っており、次のコードを使用しました。これは私にとってはうまくいきました:

    try {
        Method m = device.getClass().getMethod("createRfcommSocket",
                new Class[] { int.class });
        BluetoothSocket mySocket = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));

    } catch (<VARIOUS EXCEPTIONS>) {
        //Do stuff
    }

ユーザーにどのデバイスを選択するかを求めるために、現在ペアリングされているすべてのデバイスについて BluetoothAdapter を次のようにクエリできます。

Set<BluetoothDevice> bondedDevices = BluetoothAdapter
            .getDefaultAdapter().getBondedDevices();

最後に、同時に複数のデバイスへの接続を作成することが可能です - ここを見てください: Android Bluetooth API connect to multiple devices

于 2011-07-20T10:22:07.250 に答える