0

我如何使用 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);
    }
}
4

1 回答 1

0

我不太了解您的应用程序的全部要点,但无论如何,要连接到任何特定设备,您需要知道它的名称或 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

于 2020-02-11T09:43:51.207 回答