android 监听耳机插拔
2014-05-13 10:40
204 查看
两种方式
1、在activity里面通过BroadcastReceiver Inter消息来监听耳机插拔
//实现类
private HeadsetReceiver mHeadsetReceiver ;
public class HeadsetReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_HEADSET_PLUG)) {
int state = intent.getIntExtra("state", 0);
if (intent.hasExtra("state")) {
if (intent.getIntExtra("state", 0) == 0) {
//Headset is not plugged
log.v(TAG,"耳机未插入");
} else if (intent.getIntExtra("state", 0) == 1)//Headphones into
{
log.v(TAG,"耳机已插入");
}
}
}
}
}
调用:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerReceiver(mHeadsetPlugUnplugBroadcastReceiver,
new IntentFilter(Intent.ACTION_HEADSET_PLUG));
}
2 、通过线程监听 打开state文件 比对里面的值来检测耳机是否插入
1:表示已插入耳机,0:表示未插入耳机
private FileReader file;
private String HEADSET_STATE_PATH = "/sys/class/switch/h2w/state";
public void spraygunRun() {
new Thread(new Runnable() {
public void run() {
try {
while(!Thread.currentThread().isInterrupted()){
Thread.sleep(1000);
file = new FileReader(HEADSET_STATE_PATH);
char[] buffer = new char[1024];
int len = file.read(buffer, 0, 1024);
int headsetState = Integer.valueOf((new String(buffer, 0, len)).trim());
if(headsetState==0){
log.v(TAG,"耳机未插入");
}
}
} catch (Exception e) {
Thread.currentThread().interrupt();
}
}
}).start();
}
1、在activity里面通过BroadcastReceiver Inter消息来监听耳机插拔
//实现类
private HeadsetReceiver mHeadsetReceiver ;
public class HeadsetReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_HEADSET_PLUG)) {
int state = intent.getIntExtra("state", 0);
if (intent.hasExtra("state")) {
if (intent.getIntExtra("state", 0) == 0) {
//Headset is not plugged
log.v(TAG,"耳机未插入");
} else if (intent.getIntExtra("state", 0) == 1)//Headphones into
{
log.v(TAG,"耳机已插入");
}
}
}
}
}
调用:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerReceiver(mHeadsetPlugUnplugBroadcastReceiver,
new IntentFilter(Intent.ACTION_HEADSET_PLUG));
}
2 、通过线程监听 打开state文件 比对里面的值来检测耳机是否插入
1:表示已插入耳机,0:表示未插入耳机
private FileReader file;
private String HEADSET_STATE_PATH = "/sys/class/switch/h2w/state";
public void spraygunRun() {
new Thread(new Runnable() {
public void run() {
try {
while(!Thread.currentThread().isInterrupted()){
Thread.sleep(1000);
file = new FileReader(HEADSET_STATE_PATH);
char[] buffer = new char[1024];
int len = file.read(buffer, 0, 1024);
int headsetState = Integer.valueOf((new String(buffer, 0, len)).trim());
if(headsetState==0){
log.v(TAG,"耳机未插入");
}
}
} catch (Exception e) {
Thread.currentThread().interrupt();
}
}
}).start();
}
相关文章推荐
- android监听耳机插拔
- wangchenfeng android 监听耳机插拔
- Android210更新1---支持有线网络热插拔
- Android 耳机插拔流程源码跟踪浅析
- Android底层开发之耳机插拔与音频通道切换实例
- android 4.3 卡热插拔 自动识别卡类型
- android 接收SDCcard插拔的广播
- Android 平时用到比较多的广播之飞行模式和耳机插拔
- Android 多媒体控制 来电监听-耳机插拔监听-耳机按钮监听-MediaSession-MediaStyle
- android+耳机插拔和耳机按键检测
- Android开发-动态获取电视盒子U盘的插拔状态和路径
- android插拔耳麦广播android.intent.action.HEADSET_PLUG中间出的问题
- android 监控usb插拔
- 增加 addDataScheme("file") 才能收到SD卡插拔事件的原因分析 -- 浅析android事件过滤策略
- 增加 addDataScheme("file") 才能收到SD卡插拔事件的原因分析 -- 浅析android事件过滤策略
- Android drivers/switch驱动详解(用于通过GPIO状态检测耳机、HDMI等的插拔状态)
- 增加 addDataScheme("file") 才能收到SD卡插拔事件的原因分析 -- 浅析android事件过滤策略
- android监听TF卡插拔事件 判断
- android耳机插拔的监听
- Android的Usb设备的监听(Dev)外设端口的判定以及耳机的插拔