java - 蓝牙打开时通知

标签 java android bluetooth observer-pattern android-bluetooth

我想在蓝牙启用时执行一些操作。要启动它,我调用 bluetoothAdapter.enable();

bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();,

蓝牙不会立即启用 - 大约需要2-3秒。是否有任何通用模式可以做到这一点,或者我应该通过某种方式实现 Observer

问候

最佳答案

1) 在您的 list 中注册一个接收器 BLUETOOTH STATE CHANGE行动。

行动:- <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />

2) 在状态更改时,您的接收器会被调用,您可以检查当前的状态开/关并执行您的任务。

权限:- <uses-permission android:name="android.permission.BLUETOOTH" />

如果你想在本地 Activity 中需要它,你可以在你的 Activity 中注册接收器,如下所示。

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();

        if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
            final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
                                                 BluetoothAdapter.ERROR);
            switch (state) {
            case BluetoothAdapter.STATE_OFF:
                setButtonText("Bluetooth off");
                break;
            case BluetoothAdapter.STATE_TURNING_OFF:
                setButtonText("Turning Bluetooth off...");
                break;
            case BluetoothAdapter.STATE_ON:
                setButtonText("Bluetooth on");
                break;
            case BluetoothAdapter.STATE_TURNING_ON:
                setButtonText("Turning Bluetooth on...");
                break;
            }
        }
    }
};

如果想监听状态变化,直到您的应用程序安装在手机中。正如我上面所说,将其注册在 list 中。

关于java - 蓝牙打开时通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26844600/

相关文章:

android - 支持海量图片

google-chrome-extension - Web Bluetooth API 获取附近所有可用设备的列表

sorting - 帮助使用 Java 代码对 GPA 进行排序

java - 如何获取所选文件和文件夹的实际大小?

android - 带 Retrofit 的 CURL -u 请求

android - 如何获取设备颜色?

android - 蓝牙 LE 连接时间/缓存

java - 如何在一个应用程序中的多个 Activity 之间共享蓝牙接收的数据

java - 旋转有序数组搜索

java - 如何在 Android 中读取文件上传的服务器响应(JSON)?