如果蓝牙在 Android 应用程序中关闭,则通知

Posted

技术标签:

【中文标题】如果蓝牙在 Android 应用程序中关闭,则通知【英文标题】:notification if the Bluetooth is turned off in android app 【发布时间】:2011-03-22 08:37:11 【问题描述】:

我目前正在开发一个 android 应用程序.. 每当蓝牙出现时,我都必须通知用户 设备的关闭,而应用程序是 目前正在运行.. 如何通知远程设备 tat BT is 关掉? 提前致谢

【问题讨论】:

离题评论,因为这里没有 PM 系统:请停止在您编辑的帖子中添加噪音。您在帖子中添加了无用的粗体字,这不是一件好事。欢迎您的编辑,只是没有这种无用和烦人的噪音。 【参考方案1】:

使用意图操作BluetoothAdapter.ACTION_STATE_CHANGED 注册BroadcastReceiver,并将您的通知代码移动到onReceive 方法中。不要忘记检查新状态是否为 OFF

if(BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) 
    if(intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) 
        == BluetoothAdapter.STATE_OFF)
        // Bluetooth was disconnected

【讨论】:

【参考方案2】:

如果您想检测用户何时断开蓝牙,然后再检测用户何时断开蓝牙,您应该执行以下步骤:

1) 获取用户蓝牙适配器:

BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();    

2) 创建和配置您的接收器,代码如下:

private final BroadcastReceiver mReceiver = new BroadcastReceiver() 

    @Override
    public void onReceive(Context context, Intent intent) 

        String action = intent.getAction();

        // It means the user has changed his bluetooth state.
        if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) 

            if (btAdapter.getState() == BluetoothAdapter.STATE_TURNING_OFF) 
                // The user bluetooth is turning off yet, but it is not disabled yet.
                return;
            

            if (btAdapter.getState() == BluetoothAdapter.STATE_OFF) 
                // The user bluetooth is already disabled.
                return;
            

        
    
;    

3) 将您的 BroadcastReceiver 注册到您的 Activity 中:

this.registerReceiver(mReceiver, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));    

【讨论】:

以上是关于如果蓝牙在 Android 应用程序中关闭,则通知的主要内容,如果未能解决你的问题,请参考以下文章

在 android 中关闭应用程序时,在真实设备上未收到一个信号通知

如果从设置中关闭位置,则获取位置

当有多个具有不同通知ID的通知时,如何在android中关闭通知?

如何从通知中关闭应用程序

Android:如何从活动活动中关闭前台活动?

如何在移动 android/iOs(本机应用程序)中关闭 webview