首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用广播接收器检测蓝牙状态变化?

如何使用广播接收器检测蓝牙状态变化?
EN

Stack Overflow用户
提问于 2014-07-22 20:55:40
回答 3查看 39.9K关注 0票数 34

我正在尝试做一个应用程序,当设备的蓝牙打开时,它会显示一个吐司。即使我的应用程序没有运行,我也想这样做。所以我应该使用一个广播接收器,添加一些权限,一个意图过滤器到android清单中,并创建一个java类,但我不知道细节。

我该怎么办?我应该使用哪些权限?

EN

Stack Overflow用户

回答已采纳

发布于 2014-07-22 21:04:04

就权限而言,要检测蓝牙的状态变化,您需要将以下内容添加到AndroidManifest.xml中。

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.BLUETOOTH" />

一个示例接收器看起来像这样,您将此代码添加到您想要处理广播的位置,例如一个活动:

代码语言:javascript
运行
复制
    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
            public void onReceive (Context context, Intent intent) {
                String action = intent.getAction();

                if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {
                    if(intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) 
    == BluetoothAdapter.STATE_OFF)
    // Bluetooth is disconnected, do handling here
}

}

        };

要使用接收器,您需要注册它。您可以执行以下操作。我在我的主活动中注册接收器。

代码语言:javascript
运行
复制
registerReceiver(this, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));

您也可以决定将其全部添加到您的AndroidManifest.xml中。这样,您就可以为接收器创建一个特殊的类,并在那里处理它。不需要注册接收器,只需创建类并将以下代码添加到AndroidManifest

代码语言:javascript
运行
复制
<receiver
        android:name=".packagename.NameOfBroadcastReceiverClass"
        android:enabled="true">
    <intent-filter>
        <action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/>
    </intent-filter>
</receiver>
票数 78
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24888023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档