用于拔出耳机的广播接收器

2023-11-25

您好,我正在开发一个应用程序,当耳机从手机上取下时,该应用程序会生成一个事件。 我创建了一个广播接收器,其接收方法为

public void onReceive(Context context, Intent intent) {

        // TODO Auto-generated method stub
        String action = intent.getAction();
        Log.i("Broadcast Receiver", "Hello");
        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
            }
        }           

    }

调用该方法如下

 IntentFilter receiverFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
        HeadSetBroadCastReceiver receiver = new HeadSetBroadCastReceiver();
        registerReceiver( receiver, receiverFilter );

我也已在清单中将其注册为

   <receiver android:name=".HeadsetBroadCastReceiver">
    <intent-filter>
        <action android:name="android.intent.action.ACTION_HEADSET_PLUG"/>
    </intent-filter>
</receiver>

和许可

但这不起作用任何人都可以指导我完成这个吗?


这是棘手的一点,但您可以使用广播作为以下内容与我配合良好 在你的Activity

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myReceiver = new HeadSetReceiver();
} 

and in onResume()方法注册您的广播

public void onResume() {
    IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
    registerReceiver(myReceiver, filter);
    super.onResume();
}

然后在您的活动中声明您的广播

private class HeadSetReceiver extends BroadcastReceiver {
    @Override public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
            int state = intent.getIntExtra("state", -1);
            switch (state) {
            case 0:
                Log.d(TAG, "Headset unplugged");
                break;
            case 1:
                Log.d(TAG, "Headset plugged");
                break;
            }
        }
    }
}

希望有帮助,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于拔出耳机的广播接收器 的相关文章

随机推荐

  • MySql,分割字符串并插入表中

    我的存储过程有两个输入 第一个是 RoledID 第二个是 MenuID MenusIDs 是需要使用 RoledID 插入的逗号分隔菜单 ID 列表 RoleId 只是一个 INT 我们需要将此 RoledID 与每个 MenuID 相对
  • 如何用python构建人口金字塔

    我正在尝试使用 seaborn 从 pandas df 构建人口金字塔 问题是有些数据没有显示 正如您从我创建的图中看到的 缺少一些数据 Y 轴刻度为 21 而 df 的年龄类别为 21 那么为什么它们不匹配呢 我缺少什么 这是我写的代码
  • 如何更改WKWebView中的文本选择颜色?

    我正在尝试更改文本选择颜色WKWebView 我几乎尝试了所有建议的解决方案UIWebView WKWebView我能找到的 更改色调颜色不起作用 应用CSS selection webkit tap highlight color标签也不
  • BULK INSERT 后检查 FK 约束

    我有几个大数据集 O 1TB 我想将其导入到我的数据库中 我用BULK INSERT将数据导入临时表 然后使用SELECT and INSERT INTO用数据填充我的真实表格 这是因为我想改变一些事情的顺序 并将一些数据文件拆分成逻辑表
  • 在 Django 中格式化 DateTimeField

    在 Django 中保存时间戳时DateTimeField using auto now add这边走 creation timestamp models DateTimeField auto now add True 该字段以毫秒为单位保
  • Lua全局变量包含当前文件的路径?

    Lua中是否有一个全局变量包含当前正在解释的文件的路径 类似于 Python 的东西 file 多变的 我跑得很快for k v in pairs G do print k end在口译员中看看我是否能找到任何东西 仅列出以下变量 stri
  • 您没有用于调试 C# 的扩展,我们是否应该在 Marketplace 中找到 C# 扩展?

    我正在尝试使用 VSCode 调试 C 脚本 但当我按 F5 时它显示 但我确实在 VSCode 中安装了 C 扩展 关于我的 VSCode Version 1 56 2 system setup Commit 054a9295330880
  • 如何使用最后插入的 ID 将行插入到另一个表中?

    我的桌子上有两张SQL server GamerName and GamerValues 我想要那个 当我insert上的新行GamerName GamerName ID Name 1 Jeff 2 Geoff 3 Jarrod 4 Joe
  • 密钥库被篡改或密码不正确

    我知道已经有这样的问题 但我找不到任何可以帮助我的答案 我正在尝试获取 Google Maps API 密钥 为此我必须使用以下命令拥有 MD5 密钥 keytool list v alias androiddebugkey keystor
  • 如何将嵌套字典中的值映射到 Pydantic 模型?

    我正在尝试将嵌套 dict json 中的值映射到我的 Pydantic 模型 对我来说 当我的 json dict 具有扁平结构时 这很有效 然而 我正在努力将值从嵌套结构映射到我的 Pydantic 模型 假设我有一个以下格式的 jso
  • 如何检测浏览器中的目录选择功能?

    我想知道浏览器是否能够选择文件夹 而不仅仅是多个文件 当前的 Chrome 支持此功能 例如 http html5 demos appspot com static html5storage demos upload directory i
  • 为什么在 HashMap.keySet() 中声明局部变量 ks? [复制]

    这个问题在这里已经有答案了 我查看了java util HashMap的源代码 看到了以下代码 public Set
  • 提供正确的移动语义

    我目前正在尝试弄清楚如何使用包含指向已分配内存的指针的对象正确执行移动语义 我有一个大数据结构 其中包含指向实际存储的内部原始指针 出于效率原因 现在我添加了一个移动构造函数并移动operator 在这些方法中我std move 指向新结构
  • IServiceCollection 覆盖单个构造函数参数

    我有一个带有三个构造函数参数的类 在我的组合根中 我只想定义 覆盖one三个构造函数参数 另外两个依赖项已映射到我的 DI 容器中 并且应该从 IServiceProvider 创建 使用 Ninject 我可以做这样的事情 Bind
  • Java ServerSocketChannel SocketChannel(回调)

    我正在努力学习Java 我想实现一个简单的联网连接 4 游戏以及聊天功能 我希望我的网络逻辑是非阻塞的 所以经过大量研究 我发现 SocketChannel 就是我重新调整我的需求后的样子 仍然没有意义的是 SocketChannel 中缺
  • 如何将串口通信读入缓冲区并解析出完整的消息

    我使用以下代码从 com 端口读取值 Private port As New SerialPort COM13 9600 Parity None 8 StopBits One Private Sub port DataReceived By
  • 猫头鹰旋转木马2随机功能

    Owl Carousel 2 有没有办法制作国王随机功能 我需要页面上的幻灯片随机加载 之前在旧的猫头鹰旋转木马版本中我是这样做的 document ready function Sort random function function
  • 是否可以自动序列化 C++ 对象? [复制]

    这个问题在这里已经有答案了 有没有类似于 C 的 Java NET 序列化的东西 升压包含一个序列化库 我自己没有使用过 但通常 boost 库工作得很好
  • 如果使用 Oracle 钱包,正确的 JDBC URL 语法是什么?

    有 2 种 URL 语法 旧语法仅适用于 SID 新语法适用于 Oracle 服务名称 旧语法 jdbc oracle thin HOST PORT SID 新语法 jdbc oracle thin HOST PORT SERVICE 什么
  • 用于拔出耳机的广播接收器

    您好 我正在开发一个应用程序 当耳机从手机上取下时 该应用程序会生成一个事件 我创建了一个广播接收器 其接收方法为 public void onReceive Context context Intent intent TODO Auto