android 监听耳机插拔
来源:互联网 发布:pchome 软件 编辑:程序博客网 时间:2024/05/01 20:04
两种方式
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();
}
0 0
- android 监听耳机插拔
- Android 耳机按键与拔插监听
- wangchenfeng android 监听耳机插拔
- android耳机插拔的监听
- 监听耳机拔插状态
- iOS 监听耳机插拔
- Android 多媒体控制 来电监听-耳机插拔监听-耳机按钮监听-MediaSession-MediaStyle
- android耳机插拔事件
- android 耳机插拔流程
- Android如何监听蓝牙耳机和有线耳机的插拔
- android 耳机插拔检测(kernel)
- Android 耳机插拔处理流程
- 001 正式进入android分析hal层以上 apk监听耳机插拔事件
- 耳机插拔流程
- 耳机插拔流程
- iOS开发之音乐播放----监听耳机拔插
- iOS 开发中监听耳机拔插、耳机线控
- [RK3288][Android6.0] 有线耳机插拔事件监听小结
- android 中 adb 常用命令
- android中正确导入第三方jar包
- MIME协议
- 【算法】全排列
- 创建二叉树
- android 监听耳机插拔
- XML常用的工具_LiquidXMLStudio映射XML到C++代码
- LeakDiag使用手记
- [Java聊天室服务器]实战之七 客户端类
- android 自定义线程,自动结束本身线程
- MAT-欧几里得及拓展欧几里得算法
- 摩托车继承自行车和机动车
- Error writing file '/tmp/MY0BkiqD' (Errcode: 28)
- Eclipse代码中中文字显示很小的解决办法