簡體   English   中英

連接特定的藍牙設備

[英]Connecting with a specific bluetooth device

我如何使用 android studio 構建應用程序,該應用程序將嘗試連接(單擊按鈕)到特定設備-藍牙模塊 HC-05 v2。 我寫了“嘗試”是因為 HC-05 模塊只能連接到 1 個設備。

如果正在處理第一個設備,隊列中的第二個設備將嘗試連接,只要它能夠連接。 所以我要做的是——點擊“連接”按鈕,手機將嘗試與 hc-05 模塊連接(按名稱搜索?),如果找到它——連接到它。 15 秒后將自動斷開連接,隊列中的第二個設備將連接 15 秒,依此類推。

我做了一些使用應用程序啟用/禁用藍牙的步驟,但不知道如何設置自動連接(電話-> BT 模塊)僅 15 秒。

這是我的代碼:

BluetoothAdapter bt;
private final String TAG="MainActivity";
Button button=(Button) findViewById(R.id.button);
Button polacz=(Button) findViewById(R.id.polacz);



public void enableDisableBT() {
    if (bt == null) {
        Log.d(TAG, "enableDisableBT: Brak mozliwosci polaczenia.");
    }
    if (!bt.isEnabled()) {
        Log.d(TAG, "enableDisableBT: włączanie BT'ka");
        Intent enableBTIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivity(enableBTIntent);
        IntentFilter BTIntent = new IntentFilter((BluetoothAdapter.ACTION_STATE_CHANGED));
        registerReceiver(receiver, BTIntent);
    }
    if (bt.isEnabled()) {
        Log.d(TAG, "enableDisableBT: wyłączanie BT'ka");
        bt.disable();
        IntentFilter BTIntent = new IntentFilter((BluetoothAdapter.ACTION_STATE_CHANGED));
        registerReceiver(receiver, BTIntent);
    }
}

我不太了解您的應用程序的全部內容,但無論如何,要連接到任何特定設備,您都需要知道其名稱或 mac 地址或特定服務或特征。 因此,您需要或添加掃描屏幕,用戶可以在其中選擇所需的設備或對設備參數之一進行硬編碼。 當您擁有所需設備的列表時,您可以掃描它們。

 new ScanCallback() {
                @Override
                public void onScanResult(int callbackType, ScanResult result) {
                   result.getDevice().getAddress()// get device MAC
                   result.getDevice()// get device
                }
 }

然后連接到設備並在特定時間后斷開連接。 您可以根據需要實施的所有其他員工。 例如,您可以將已連接的設備保存到列表中以避免重新連接等

您可以在此處閱讀更多信息: https : //medium.com/@avigezerit/bluetooth-low-energy-on-android-22bc7310387a

暫無
暫無

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

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