1.判断耳机是否插入:

AudioManager的isWiredHeadsetOn()方法:

AudioManager localAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

localAudioManager.isWiredHeadsetOn()

如果插入了耳机,就返回true,否则false;

注意:要加个权限,不然一直是返回false。

2.实时监测耳机的插入拔出:

每当插入和拔出耳机时,系统都会发送Intent广播。

所以,只需要用一个receiver把这个广播intent(获取的action是:“android.intent.action.HEADSET_PLUG”)截获就好。

在Android下实现检测耳机插入和拔出,也即建立一个Broadcast Receiver,监听“android.intent.action.HEADSET_PLUG”广播

但直接在AndroidManifest.xml中添加一个标签,写入内存的方式是无效的。

如:

发现Receiver的onReceive事件永远不会被触发,解决方法就是手动编写代码注册该广播:

首先,创建一个BroadcastReceiver的子类,用于监听耳机插入和拔出:

public class HeadsetPlugReceiver extends BroadcastReceiver {

private static final String TAG = "HeadsetPlugReceiver";

@Override

public 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();

}

else if (intent.getIntExtra("state", 0) == 1){

Toast.makeText(context, "headset connected", Toast.LENGTH_LONG).show();

}

}

}

}

然后,在需要监听该事件的Activity中的onCreate()中注册监听该广播,同时不要忘记在onDestroy()中注销监听该广播:

public class TestHeadSetPlugActivity extends Activity {

private HeadsetPlugReceiver headsetPlugReceiver;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/* register receiver */

registerHeadsetPlugReceiver();

}

private void registerHeadsetPlugReceiver() {

headsetPlugReceiver = new HeadsetPlugReceiver();

IntentFilter intentFilter = new IntentFilter();

intentFilter.addAction("android.intent.action.HEADSET_PLUG");

registerReceiver(headsetPlugReceiver, intentFilter);

}

@Override

public void onDestroy() {

unregisterReceiver(headsetPlugReceiver);

super.onDestroy();

}

} 如上这样就可以实现检测耳机插入和拔出了。

android 耳机监听权限,android 耳机监听相关推荐

  1. android 9 申请动态权限android.permission.WRITE_EXTERNAL_STORAGE 允许后应用闪退

    问题描述:如题,在调试android 9 高通msm8953平台时,客户反馈应用在允许Manifest.permission.WRITE_EXTERNAL_STORAGE权限后,应用闪退. 从log分 ...

  2. android方法数据库的权限,Android数据存储,运行时权限

    Android存储目录 Android的底层支持是Linux,不同于Windows,没有分盘的概念,是以文件夹形式呈现,可以理解为一个应用就是一个用户. data目录 手机内部存储目录(手机本身内存) ...

  3. android 打开相册的权限,Android 启动系统相机,相册,裁剪图片及6.0权限管理

    在日常开发中,我们经常需要用到上传图片的 功能,这个时候通常有两种做法,第一种,从相机获取,第二种,从相册获取.今天这篇博客主要讲解利用系统的Intent怎样获取? 主要内容如下 怎样通过相机获取我们 ...

  4. Android常用的网络权限,Android常用的权限大全

    Android的常用权限 访问网络 android.permission.INTERNET 访问网络连接可能产生GPRS流量 写入外部存储 android.permission.WRITE_EXTER ...

  5. android 6 编译 root权限,Android应用获得Root权限

    要让Android应用获得Root权限,首先Android设备必须已经获得Root权限. 应用获取Root权限的原理:让应用的代码执行目录获取最高权限.在Linux中通过chmod 777 [代码执行 ...

  6. android 6.0 数据库权限,Android超清晰6.0权限申请AndPermission

    Android超清晰6.0权限申请AndPermission的具体实现代码,供大家参考,具体内容如下 前言 这是我经常使用的框架,原因: 1.思路清晰 2.实现方便 开始 准备工作 导包 compil ...

  7. android studio播放视频权限,Android Studio实现本地视频播放

    Android Studio的MediaPlayer播放本地视频 关于MediaPlayer错误[open failed: EACCES (Permission denied)] 可能会有下面几个方面 ...

  8. android 不停弹出权限,Android部分手机“后台弹出界面权限”解决方案

    在前段时间的编程开发中,突然发现一个小坑的地方,其实在Android官方中并没有限制,但是在很多厂商的系统中却做了修改限制,那就是"后台弹出界面权限" 最开始发现这个问题,是因为我 ...

  9. android请求读写外设权限,android读写文件完整版

    鉴于实现android文件读写的惨痛经历,我决定将其实现过程写下来.其实网站上关于这方面的博客.讨论很多,我也看了很多,但都不太完整(也可能是我没看明白),导致我在这个问题上纠结了足足4天,在完成前1 ...

最新文章

  1. 运动桁架下压力信号采集与处理
  2. 什么可以代替压感笔_什么是优生五项?一般体检可以代替优生五项检查?医生:不可以!...
  3. IRC BOT原来是利用IRC下发CC命令——在xx云环境遇到了,恶意软件开的是6666端口...
  4. windows资源管理器进行ftp登录下载文件报“当前的安全设置不允许从该位置下载文件”...
  5. 记录 McAfee WebAdvisor 产生大量日志文件,卸载时一直转圈圈,成功卸载方式
  6. [转]cocos2d游戏开发,常用工具集合
  7. 用得最多的altium版本_83版《神雕》有多猛?收视率破90%!金庸最满意的版本...
  8. 数据结构和算法的选择
  9. dubbo注册中心介绍
  10. SQL面试题--(26~46)
  11. AngularJs + angular-ui-router + bootstrap 实现blog基础导航功能
  12. 团队项目第一阶段冲刺站立会议05
  13. iOS开发之cocoapods报错MacOSSierra10.13-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framewor
  14. 高校固定资产折旧使用计算机,高校固定资产管理系统功能介绍
  15. ADF11g-041:禁止或允许其它网站添加ADF页面到iframe中
  16. rtx web 分级管理系统 二次开发
  17. C# Md5与AES加密解密源码记录
  18. 2019Java视频教程-Spring Boot实战
  19. 数据库及数据表的创建与删除
  20. 史上最强css、html总结,看完涨薪不再是梦

热门文章

  1. 红帽linux竞赛,浅谈红帽linux挑战赛(三)
  2. 读书笔记--《软技能-代码之外的生存指南》
  3. 项目经理之新任项目经理的五项修炼
  4. 史上最全 | 基于深度学习的3D分割综述(RGB-D/点云/体素/多目)
  5. 基于Jetson AGX Xavier GMSL9296硬件设计与软硬件调试
  6. StrConv 内码转换
  7. c语言必背数据结构_C语言实现常用数据结构:简要一览(第1篇
  8. CSS 仿 iOS 系统通知数字样式
  9. 体素转换为点云(VRN)
  10. 使用LCN框架解决分布式事物