android-检测耳机的插入和拔出动作
在android系统中,检测耳机的插入和拔出,也是通过广播实现的,可以建立一个Broadcast Receiver 监听"android.intent.action.HEADSET_PLUG" 这个Intent。
在这个Intent中包含以下几个值:
- state --- 0代表拔出,1代表插入
- name--- 字符串,代表headset的类型。
- microphone -- 1代表这个headset有麦克风,0则没有。
- <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中监听事件:
- <pre name="code" class="java">
- 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();
- }
- }
- }
- }
android-检测耳机的插入和拔出动作相关推荐
- VC++实时检测耳机的插入与拔出(附源码)
目录 1.实现继承于IMMNotificationClient接口类的CMMNotificationClient类,实时感知音频设备变化的通知事件
- Android Kotlin - 监听耳机的插入和拔出
Android Kotlin - 监听耳机的插入和拔出 开发音乐应用时需要监听耳机的插入和拔出,用以调整音量或暂停播放. 采用注册广播的方式. 新建 HeadsetChangeReceiver 类 i ...
- android 耳机检测,android 检测耳机是否插入方法
AudioManager就有这个方法: isWiredHeadsetOn(): 如果插入了耳机,就返回true,否则false; 当然,要加个权限,不然一直是返回false. 开始我追了好久的源码.发 ...
- WINDOWS检测U盘插入,拔出
检测U盘的插入或拔出状态,然后根据状态做出相关操作. 检测U盘是否被插入是通过监听WM_DEVICECHANGE消息来实现的. 判断-U盘拔出和插入-获取它盘符 2010-05-04 10:59 加入 ...
- Windows下使用Qt检测U盘插入和拔出的示例Demo程序
本文转载自Qt检测U盘插入拔出Demo 要做这个,要先知道Qt的QAbstractNativeEventFilter类,虚函数nativeEventFilter.这个类的主要作用是捕获全局window ...
- WPF中检测U盘插入、拔出 实例
类代码: /// <summary>/// 声明一个委托,用于代理一系列自定义方法/// </summary>public delegate void FlashDiskDel ...
- QT:检测U盘插入和拔出(windows)
1.先检测驱动器: 2.可以使用GetDriveType函数来获取驱动器的类型,以下是函数的链接: https://docs.microsoft.com/zh-cn/windows/win32/api ...
- Android实现检测耳机插入和拔出
在Android下实现检测耳机插入和拔出,也即建立一个Broadcast Receiver,监听"android.intent.action.HEADSET_PLUG"广播 但直接 ...
- Qt C++ 检测优盘插入或拔出
概述 在开发文件浏览相关应用时,会涉及到动态检测优盘插入或拔出的状态,这样可以实时的刷新界面显示.这里通过调用windows的接口来实现该检测,代码很简单.我是在Qt工程中使用的,其核心代码是一样的. ...
最新文章
- WebRTC成为W3C和IETF正式标准
- redis学习(九)——数据持久化
- (十一)nodejs循序渐进-高性能游戏服务器框架pomelo之启动流程和组件
- 百度贴吧发帖软件_贴吧自动发帖软件
- jfinal-swagger让你的应用接口更加简单
- Inception v2/v3原理与实现
- html2canvas图片坐标,html2canvas生成的图片偏移不完整的解决方法
- WayOS路由器企业应用方案
- ueditor 禁止编辑_织梦ueditor百度编辑器div style被过滤解决办法
- 几种主流编程语言的优点和缺点比较,不服来怼
- foxmail绑定qq邮箱服务器,开通IMAP服务 用Foxmail远程操作QQ邮箱
- Vue双向绑定:原理篇(详细)
- 【跨保985计算机】2022跨保实录|六千字保姆教程
- 百度快照不更新的解决方法
- 如何在家远程控制办公室电脑
- 微信小程序开发如何实现微信支付
- 深入理解 MySQL 底层实现
- JAVA入门算法题(十三)
- 管理到底是管人,还是管事?
- 卫星地图哪个最清晰,哪个使用最方便? 附赠全套可用图源
热门文章
- [SpringBoot系列]基础过渡与夯实(基础配置)
- Vue中使用js-web-screen-shot插件实现截屏功能
- 高音质游戏无线蓝牙耳机推荐,低延迟吃鸡王者兼容无压力
- Linux期末复习考前走一走——何绍华Linux操作系统第3版
- 忘记电子商务吧,很快一切都将与元宇宙有关
- 无法在windows资源管理器中查看此FTP站点
- Word 安装Mathtype后无法使用CTRL+C和CTRL+V【一次性解决】
- mysql:SQL语言包含4个部分
- 6.前端CSS之布局属性(盒子,float,overflow,opsition,z-index,opacity)
- RT-Thread 读写U盘