3

私は Android 開発に関してはまったくの初心者なので、多くの質問があります。現在、Bluetooth経由で2つのデバイスを接続しようとしています。これまでのところ、これを行うことができました。2 台のタブレットを接続しましたが、LinkKey を保存し、その一部のバイトを使用して PIN を作成するよう求められます。では、どうすればその LinkKey を取得できますか? 将来の接続のために両方のデバイスに保存されていると読みましたが、取得方法がわかりません。

また、このデバイスはこれらの LinkKey を削除できると読みましたが、その後どうなりますか? 再度相互接続を試みる場合、同じ LinkKey を使用しますか、それとも新しい LinkKey を作成しますか?

そして最後に。ディスプレイもキーパッドもないデバイスにタブレットを接続する必要がありますが、通常の Bluetooth 接続で十分ですか? 接続を確立するためにこれを行っています:

final UUID MY_UUID = UUID.randomUUID();
        //tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
        Method m = null;
        try {
            m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
        } catch (NoSuchMethodException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        tmp = (BluetoothSocket) m.invoke(device, 1);
        mmSocket = tmp;


    Thread connectionThread = new Thread(new Runnable(){

    public void run() {
        // Cancel discovery because it will slow down the connection
        mBluetoothAdapter.cancelDiscovery();

        try {
            // Connect the device through the socket. This will block
            // until it succeeds or throws an exception
            mmSocket.connect();
        } catch (IOException connectException) {
            // Unable to connect; close the socket and get out
            try {
                mmSocket.close();
            } catch (IOException closeException) { }
            return;
        }

        // Do work to manage the connection (in a separate thread)
        manageConnectedSocket(mmSocket);
    }

ありがとう。

4

1 に答える 1

1

リンク キーの作成は、アプリ レベルではなく、スタック/LMP(Link Manager) レベルで行われます。Bluetooth デバイスは、リンク キーが存在するかどうかを確認します。存在する場合、ペアリングは行われず、Bluetooth 接続が続行されます。Bluetooth スタックでリンク キーが見つからない場合、LMP(Link Manager) は新しいペアリング プロセスを開始します。ペアリングが完了し、Bluetooth 接続が続行されます。リンク キーが削除されると、接続用に新しいリンク キーが生成されます。

adb shell (/data/misc/bluetoothdまたはdata/misc/bluetooth) で link key をチェックしてみてください。ペアリングされたデバイス情報で利用できます。

于 2013-01-24T09:14:53.730 に答える