Подключение к указанному c устройству Bluetooth - PullRequest
0 голосов
/ 08 февраля 2020

Как я создаю приложение, используя android studio, которая попытается подключиться (при нажатии кнопки) к указанному c устройству - блютуз-модулю H C -05 v2. Я написал «пытаюсь», потому что модель H C -05 сможет подключаться только к 1 устройству.

Если обрабатывается первое устройство, второе в очереди будет пытаться подключиться, пока оно подключится. Так что я собираюсь сделать - при нажатии кнопки «ПОДКЛЮЧИТЬ» телефон будет пытаться соединиться с модулем h c -05 (поиск по имени?), Если он его обнаружит, подключится к нему. Через 15 секунд автоматически отключится, а то, что произойдет, - второе устройство в очереди будет подключено на 15 секунд, и так далее.

Я сделал несколько шагов, чтобы включить / отключить Bluetooth с помощью приложения, но не знаю, как настроить автоматическое c подключение (телефон-> 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);
    }
}

1 Ответ

0 голосов
/ 11 февраля 2020

Я не совсем понял весь смысл вашего приложения, но в любом случае, чтобы подключиться к какому-либо конкретному устройству, вам нужно знать либо его имя, либо адрес ma c, либо конкретную c услугу или характеристику. c. Поэтому вам нужно или добавить экран сканирования, где пользователь сможет выбрать нужные устройства, или жестко закодировать один из параметров устройства. И когда у вас будет список необходимых устройств, вы можете их отсканировать.

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

Затем подключитесь к устройству и отключитесь по истечении c времени. Все остальные сотрудники вы можете реализовать в соответствии с вашими потребностями. Например, вы можете сохранить уже подключенные устройства в список, чтобы избежать переподключения и т. Д.

Подробнее читайте здесь: https://medium.com/@avigezerit / bluetooth-low-energy-on- android -22bc7310387a

...