android 检测耳机是否插入-改进方案
来源:互联网 发布:2016word MAC中的替换 编辑:程序博客网 时间:2024/05/17 04:22
上一篇转发博文的改进版
主Activity 类
public class MainActivity extends Activity {private HeadsetPlugReceiver headsetPlugReceiver;TextView mText;// 当前页面用于显示信息的文本控件Handler mHandler;@Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// get view by idmText = (TextView)findViewById(R.id.readAudioResult);setListener();/* register receiver */ registerHeadsetPlugReceiver(); }private void setListener(){mHandler = new Handler(){@Override public void handleMessage(Message msg) {if(msg.what == 0x00){mText.setText("mic 插入");}else if(msg.what == 0x01){mText.setText("mic 拨出");}}};}private void registerHeadsetPlugReceiver() { headsetPlugReceiver = new HeadsetPlugReceiver(); headsetPlugReceiver.setSendHandler(mHandler); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.intent.action.HEADSET_PLUG"); registerReceiver(headsetPlugReceiver, intentFilter); }@Override public void onStop(){unregisterReceiver(headsetPlugReceiver);// 在界面不可见的情况下,就完全需要注销该接收器super.onStop();}@Override public void onDestroy(){super.onDestroy();}}继承于BroadcastReceiver的广播消息接受者类 HeadsetPlugReceiver
public class HeadsetPlugReceiver extends BroadcastReceiver {private static final String TAG = "HeadsetPlugReceiver"; // 发送消息队列Handler sendHandler;public Handler getSendHandler() {return sendHandler;}public void setSendHandler(Handler sendHandler) {this.sendHandler = sendHandler;}@Overridepublic void onReceive(Context context, Intent intent) {if (intent.hasExtra("state")){ if (intent.getIntExtra("state", 0) == 0){ // Toast.makeText(context, "headset not connected", Toast.LENGTH_LONG).show(); Message msg = new Message(); msg.what = 0x01;sendHandler.sendMessage(msg); } else if (intent.getIntExtra("state", 0) == 1){ // Toast.makeText(context, "headset connected", Toast.LENGTH_LONG).show(); Message msg = new Message(); msg.what = 0x00;sendHandler.sendMessage(msg); }} }}
他们之间使用 Handler 来传递消息。
1)当由耳机插入手机时,HeadsetPlugReceiver发送0x00 消息,主界面会收到该消息,并显示mic插入。
2) 当由耳机拨出手机时,HeadsetPlugReceiver发送0x01 消息,主界面会收到该消息,并显示mi拔出。
0 0
- android 检测耳机是否插入-改进方案
- android 检测耳机是否插入
- android 检测耳机是否插入
- android 检测耳机是否插入
- android 检测耳机是否插入
- android 检测耳机是否插入
- android 检测耳机是否插入
- android 检测耳机是否插入
- android 检测耳机是否插入
- 检测是否插入耳机
- android耳机插入检测
- android耳机插入检测
- android 耳机插入检测
- android耳机插入检测
- android耳机插入检测
- Android耳机插入检测
- iOS检测耳机是否插入
- 检测耳机是否插入方法
- mysql的general log和slow log的配置步骤
- Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
- ios申请真机调试( xcode 5)详细解析
- LINUX SHELL编程从初学到精通(第二章 Linux文件系统和文本编辑器)(下)
- hdu题目分类
- android 检测耳机是否插入-改进方案
- Unity Build APK 出现Unable to convert classes into dex format错误
- Python对Json的相关操作
- 航班查询接口
- 建立Maven Android项目
- Linux ALSA声卡驱动之六:ASoC架构中的Machine
- jQuery dataTable使用详解 141105
- ORACLE 11G的BIEE 部署与运用(三)——BIEE的配置各种错误(图示)
- SSH框架下的分页功能