gpt4 book ai didi

android - 在广播接收器中获取 ACTION_HEADSET_PLUG 需要哪些权限

转载 作者:太空狗 更新时间:2023-10-29 16:10:11 38 4
gpt4 key购买 nike

我正在使用 list 文件为 ACTION_HEADSET_PLUG 创建广播接收器。但是当耳机连接/断开时我无法收到广播,为了能够接收 ACTION_HEADSET_PLUG 广播 Intent ,我应该在 list 文件中使用哪个权限

最佳答案

使用 API 8,我无需创建服务或请求额外权限即可调用我的广播接收器。

您可以在您的主要 Activity 中定义一个类似于我在下面定义的内部类:

public class HeadSetBroadCastReceiver extends BroadcastReceiver
{

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

// TODO Auto-generated method stub
String action = intent.getAction();
Log.i("Broadcast Receiver", action);
if( (action.compareTo(Intent.ACTION_HEADSET_PLUG)) == 0) //if the action match a headset one
{
int headSetState = intent.getIntExtra("state", 0); //get the headset state property
int hasMicrophone = intent.getIntExtra("microphone", 0);//get the headset microphone property
if( (headSetState == 0) && (hasMicrophone == 0)) //headset was unplugged & has no microphone
{
//do whatever
}
}

}

}

然后,动态或静态注册您的广播接收器。我在 Activity 的 onCreate() 方法中动态注册了我的:

this.registerReceiver(headsetReceiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));

确保您使用 Context 的 unregisterReceiver 注销了您的 BroadcastReceiver。就我而言,我是在 onDestroy() 方法中执行此操作的。应该这样做。

关于android - 在广播接收器中获取 ACTION_HEADSET_PLUG 需要哪些权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202046/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com