博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android-检测耳机的插入和拔出动作
阅读量:5154 次
发布时间:2019-06-13

本文共 1981 字,大约阅读时间需要 6 分钟。

在android系统中,检测耳机的插入和拔出,也是通过广播实现的,可以建立一个Broadcast Receiver 监听"android.intent.action.HEADSET_PLUG" 这个Intent。

在这个Intent中包含以下几个值:

  • state ---       0代表拔出,1代表插入
  • name--- 字符串,代表headset的类型。
  • microphone --   1代表这个headset有麦克风,0则没有。
在使用的时候发现直接在AndroidManifest,xml文件中静态注册是无效的<receiver android:name=".HeadsetPlugReceiver"> <intent-filter> <action android:name="android.intent.action.HEADSET_PLUG" android:enabled="true"> </action> </intent-filter> </receiver> 解决办法是在代码中动态注册。
import android.app.Activity; import android.content.IntentFilter; import android.os.Bundle; public class HeadSetActivity extends Activity { HeadsetPlugReceiver headsetPlugReceiver; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); registerHeadsetPlugReceiver(); } private void registerHeadsetPlugReceiver(){ headsetPlugReceiver = new HeadsetPlugReceiver (); IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.HEADSET_PLUG"); registerReceiver(headsetPlugReceiver, filter); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); unregisterReceiver(); //注销监听 } private void unregisterReceiver(){ this.unregisterReceiver(headsetPlugReceiver); } }
在broadcast Receiver中监听事件:
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class HeadsetPlugReceiver extends BroadcastReceiver {	@Override	public void onReceive(Context context, Intent intent) {		// TODO Auto-generated method stub					if(intent.hasExtra("state")){				if(intent.getIntExtra("state", 0)==0){					Toast.makeText(context, "headset not connected", Toast.LENGTH_LONG).show();				}				else if(intent.getIntExtra("state", 0)==1){					Toast.makeText(context, "headset  connected", Toast.LENGTH_LONG).show();				}			}	}}
 

转载于:https://www.cnblogs.com/android-html5/archive/2012/03/11/2534085.html

你可能感兴趣的文章
Java网络编程--socket服务器端与客户端讲解
查看>>
List_统计输入数值的各种值
查看>>
学习笔记-KMP算法
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
跨域问题整理
查看>>
[Linux]文件浏览
查看>>
64位主机64位oracle下装32位客户端ODAC(NFPACS版)
查看>>
获取国内随机IP的函数
查看>>
今天第一次写博客
查看>>
江城子·己亥年戊辰月丁丑日话凄凉
查看>>
IP V4 和 IP V6 初识
查看>>
Spring Mvc模式下Jquery Ajax 与后台交互操作
查看>>
(转)matlab练习程序(HOG方向梯度直方图)
查看>>
『Raid 平面最近点对』
查看>>
【ADO.NET基础-数据加密】第一篇(加密解密篇)
查看>>
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>
OO学习总结与体会
查看>>