headset-监听有线耳机插拔
今天在做项目的时候,需要对耳机的插拔事件进行监听,所以就写了如下的一个小demo,对耳机监听事件进行验证。直接看代码
package com.example.alert; import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast; public class HeadsetPlugReceiver extends BroadcastReceiver { @Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub int state = intent.getIntExtra("state", -1);
int mic = intent.getIntExtra("microphone", -1);
if(state==0 && mic ==0){
Log.e("123", "headset no microphone not connected");
Toast.makeText(context, "headset no microphone not connected", Toast.LENGTH_LONG).show();
} else if (state==0 && mic ==1) {
Log.e("123", "headset with microphone not connected");
Toast.makeText(context, "headset with microphone not connected", Toast.LENGTH_LONG).show();
}else if(state==1 && mic ==0){
Log.e("123", "headset no microphone connected");
Toast.makeText(context, "headset no microphone connected", Toast.LENGTH_LONG).show();
} else if (state==1 && mic ==1) {
Log.e("123", "headset with microphone connected");
Toast.makeText(context, "headset with microphone connected", Toast.LENGTH_LONG).show();
}
} }
对于广播在activity中的注册什么的,我们就不写了,毕竟大家都知道
监听的广播是
filter.addAction("android.intent.action.HEADSET_PLUG");
直接看我们的打印log
1.进入应用->插入耳机->拔出耳机(带有麦克风)
- ::02.815: E/(): headset no microphone not connected
- ::29.285: E/(): headset no microphone connected
- ::29.355: E/(): headset with microphone connected
- ::41.965: E/(): headset with microphone not connected
- ::42.995: E/(): headset no microphone not connected
2.插入耳机->进入应用->拔出耳机(带有麦克风)
- ::49.635: E/(): headset with microphone connected
- ::01.995: E/(): headset with microphone not connected
- ::03.025: E/(): headset no microphone not connected
3.进入应用->插入耳机->拔出耳机(没有麦克风)
- ::34.665: E/(): headset no microphone not connected
- ::38.985: E/(): headset no microphone connected
- ::49.945: E/(): headset with microphone connected
- ::50.635: E/(): headset with microphone not connected
- ::51.635: E/(): headset no microphone not connected
4.插入耳机->进入应用->拔出耳机(没有麦克风)
- ::27.815: E/(): headset no microphone not connected
- ::30.865: E/(): headset no microphone connected
从上面的结果我们可以得出如下的结论
1)监听有线耳机(有无麦克风)的广播 是 Intent.ACTION_HEADSET_PLUG
2)刚进入这个应用,会对耳机进行监听的,不明白为什么,但至少可以作为一次初始条件判断
3)这个广播可以同时监听插入的耳机是有线还是无线。不过,似乎是有线跟无线插入都会对有线跟无线进行判断,会发两次广播
4)state-耳机插入状态0-拔出 1-插入
microphone-有无麦克风 0-没有 1-有
headset-监听有线耳机插拔的更多相关文章
- Sdcard插拔、状态广播监听,Android文件系统,Android存储器相关知识总结
一 SDcard广播监听,注册,取消注册的实现 (1)根据实际需要监听的事件,添加action,并注册,一般在onCreate中添加 //在IntentFilter中选择你要监听的行为 IntentF ...
- 监听SD卡状态
最近在做项目时遇到需要处理SD卡拔出时的监听,在网上找了很多资料.总结了一下, 用接收广播处理最有效率 sd卡拔插时会发送广播,具体如下(摘自一位大虾的博客 来自:http://blog. ...
- ARM上的linux如何实现无线网卡的冷插拔和热插拔
ARM上的linux如何实现无线网卡的冷插拔和热插拔 fulinux 凌云实验室 1. 冷插拔 如果在系统上电之前就将RT2070/RT3070芯片的无线网卡(以下简称wlan)插上,即冷插拔.我们通 ...
- Oracle12c中配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB)
Oracle12c中的多宿主选项允许一个容器数据库(CDB)容纳多个独立的可插拔数据库(PDB).本文将展示如何配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB).1. 配置CDB中的实例 ...
- 对于HDMI设备连接状态的监听
对与最近主要做的是电视机盒子端的开发,其中涉及到设备的状态监听比较繁琐,所以对HDMI的连接状态的监听方法做个记录,方便后续查看. 主要通过两种方式: (1)比较常用的广播监听 注册一个动态广播来获取 ...
- android86 监听SD卡状态,勒索软件,监听应用的安装、卸载、更新,无序广播有序广播
* 添加权限 <uses-permission android:name="android.permission.RECEIVE_SMS"/> * 4.0以后广播接收者 ...
- ArcGIS API for JavaScript 4.2学习笔记[7] 鹰眼(缩略图的实现及异步处理、Promise、回调函数、监听的笔记)
文前说明:关于style就是页面的css暂时不做评论,因为官方给的例子的样式实在太简单了,照抄阅读即可. 这篇文章有着大量AJS 4.x版本添加的内容,如监听watch.Promise对象.回调函数. ...
- Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听
Android实训案例(六)--四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听 Android中四大组件的使用时重中之重,我这个阶段也不奢望能把他 ...
- 学习Android过程中遇到的问题及解决方法——电话监听
也许有时你会有这样一个需求:通电话时有一个重要的事需要记下来或者和一个陌生人特别是大骗子通话时,这是就想如果能把通话录下来就方便多了.(这才是我写这个代码的目的!!!) 在此过程中,犯了一个很大的错误 ...
随机推荐
- BZOJ 1927 最小费用流问题
From lydrainbowcat //By SiriusRen #include <queue> #include <cstdio> #include <cstrin ...
- LOJ #109. 并查集
内存限制:256 MiB时间限制:2000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论 1 测试数据 题目描述 这是一道模板题. 维护一个 nnn 点 ...
- 基于AsyncTask的图片下载
有一阵子没有写程序,连基本的AsyncTask用法都记不清楚了,复习一下于是有了下面的图片加载类. package com.hitech.download; import java.io.IOExce ...
- HDU 2515 Yanghee 的算术【找规律】
题意:中文的题目 找规律可以发现 sum[1]=a[1]+a[2] sum[2]=a[1]+a[3] sum[n]=a[2]+a[3] 解出a[1],就可以求出其他的了 #include<ios ...
- ArchLinux 调节屏幕亮度和音量大小
我使用的是dwm,所以这种琐碎小事还要我们亲自动手, 以后考虑做个脚本,把声音调节.屏幕亮度什么的统统塞进去 屏幕亮度 # 查看亮度最大值 cat /sys/class/backlight/intel ...
- 转载 :Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码
http://linux.cn/article-5015-1.html 问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核.那么在Debian或Ubunt ...
- WHU 1538 Stones II 动态规划
赛后写的,动态规划,学长和题解,提供了两种状态设计的思路,都写了下……结果在写第二种的时候,不小心把下标的起点写错了,导致WA了无数发…… 无奈啊……每次都是这种错误…… 题意: 大概就是有n块石头, ...
- 个人学习源码的 HBase误区的总结 与 架构图
HDFS 的备份功能不是给 基于 HBase 等 基于HDFS 的项目做备份的. 如果 HBase 需要备份,那么久需要设置 备份(快照 )功能. HMaster . kafka 等无主结构并 ...
- Strom 简介,ppt
数据的生成可以看做一连串发生的离散事件, 这些事件流会伴随着不同的数据流.操作和分析,都会由一个通用的软件框架和基础设施来处理. Storm 是 实时流计算框架之一.它提供了可容错 ...
- Chrome无界面浏览模式与自定义插件加载问题
环境:Python 3.5.x + Selenium 3.4.3 + Chromedriver 2.30 + Chrome 60 beta或Chromium Canary 61 + WIN10 Chr ...