簡體   English   中英

連接到已配對的藍牙設備

[英]Connecting to a already paired Bluetooth device

最近我試圖讓一個配對過程以編程方式工作,我成功了。 但我最近發現我的應用程序的用戶可以連接到幾個“有趣”的設備。 所以我必須提示用戶選擇要連接的設備

所以我必須將用戶連接到已經配對的藍牙設備。 但我的努力都沒有奏效。 我嘗試使用以下命令再次運行配對過程:

tmp = device.createRfcommSocketToServiceRecord(MY_UUID);

還有以下內容:

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

這是我已經實現的方法,也是將手機與嵌入式藍牙設備配對的唯一有效方法

所以我的問題是:

  • 我可以斷開配對設備然后連接到另一個嵌入式設備嗎? 我試過..簡單地連接到新設備,但我無法讓它工作

恐怕我不完全確定你的問題是什么。 是您無法為已配對的藍牙設備創建套接字嗎?

首先,如果設備已經配對,則無需再次運行配對過程。 您只需要創建用於通信的套接字,如果設備無法與之通信,它將失敗。 我最近一直在做一些事情,我使用了以下代碼,這對我來說效果很好:

    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
    }

為了提示用戶 select 是哪個設備,可以通過藍牙適配器查詢所有當前配對的設備,如下:

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

最后,可以同時創建到多個設備的連接 - 看看這里: Android 藍牙 API 連接到多個設備

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM