返回顶部
首页 > 资讯 > 移动开发 >android 检测耳机是否插入方法
  • 856
分享到

android 检测耳机是否插入方法

耳机方法Android 2022-06-06 11:06:14 856人浏览 薄情痞子
摘要

AudioManager就有这个方法: isWiredHeadsetOn(); 如果插入了耳机,就返回true,否则false; 当然,要加个权限,不然一直是返回false。

AudioManager就有这个方法:
isWiredHeadsetOn();
如果插入了耳机,就返回true,否则false;
当然,要加个权限,不然一直是返回false。
<uses-permission Android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
开始我追了好久的源码。发现了实时检测耳机插入和拔出的过程,不过对我的需求来说帮助不是很大。
实时检测耳机插入和拔出:
每当插入和拔出耳机时,系统都会发送Intent广播,
所以,只需要用一个receiver把这个广播intent(获取的action是:“android.intent.action.HEADSET_PLUG”)截获就好。
这个receiver必须要用代码注册,而不能写在manifest里面用写入内存的方式。
在Android下实现检测耳机插入和拔出,也即建立一个Broadcast Receiver,监听“android.intent.action.HEADSET_PLUG”广播
但直接在AndroidManifest.xml中添加一个<receiver>标签是无效的,如:
[html]
代码如下:
<receiver android:name=".HeadsetPlugReceiver">
<intent-filter>
<action android:name="android.intent.action.HEADSET_PLUG" android:enabled="true"></action>
</intent-filter>
</receiver>

你会发现Receiver的onReceive事件永远不会被触发,解决方法就是手动编写代码注册该广播。
首先,创建一个BroadcastReceiver的子类,用于监听耳机插入和拔出:
[java]
代码如下:
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()中注销监听该广播:
[java]
代码如下:
public class TestHeadSetPlugActivity extends Activity {
private HeadsetPlugReceiver headsetPlugReceiver;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

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程序的版本检测与更新实现介绍Android实现创建或升级数据库时执行语句Android增量升级的方法和原理详细介绍android实现程序自动升级到安装示例分享(下载android程序安装包)基于Android sqlite的升级详解Android编程实现检测当前电源状态的方法Android系统检测程序内存占用各种方法Android和iOS的浏览器中检测是否安装某个客户端的方法Android编程实现自动检测版本及自动升级的方法


--结束END--

本文标题: android 检测耳机是否插入方法

本文链接: https://lsjlt.com/news/28082.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • android 检测耳机是否插入方法
    AudioManager就有这个方法: isWiredHeadsetOn(); 如果插入了耳机,就返回true,否则false; 当然,要加个权限,不然一直是返回false。 ...
    99+
    2022-06-06
    耳机 方法 Android
  • win10耳机插上检测不到如何解决
    如果您在Windows 10上插入耳机后没有检测到它,请尝试以下解决方法:1. 确保耳机插头已正确插入电脑的音频插孔。有时,插头不完...
    99+
    2023-08-26
    win10
  • android检查手机和无线是否连接的方法
    本文实例讲述了android检查手机和无线是否连接的实现代码,分享给大家供大家参考。具体方法如下: 方法一: 主要功能代码如下: 代码如下:ConnectivityManag...
    99+
    2022-06-06
    无线 连接 方法 手机 Android
  • linux插入耳机以后没有声音的解决方法
    小编给大家分享一下linux插入耳机以后没有声音的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!有一台linux系统的笔记本,在播放音乐的时候发现,扬声器外放有声音,但是接入耳机却没有声音。方法如下首先,点击任务栏...
    99+
    2023-06-10
  • 怎么检测一台机器是否宕机
    这篇文章主要介绍了怎么检测一台机器是否宕机,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。检测一台机器是否宕机的应用场景如下:1, 工作机器宕机,总控节点需要能够检测到并且将原...
    99+
    2023-06-16
  • 检测ip和port是否可连接的方法
    windows cmd telnet format: telnet ip port case: telnet 191.1.1.1 8080 telnet不能加http:// telnet不支持域名 telne...
    99+
    2022-06-04
    检测 ip port 可连接
  • apache tika检测文件是否损坏的方法
    Apache Tika用于文件类型检测和从各种格式的文件内容提取的库。 将上传文件至服务器,进行解析文件时,经常需要判断文件是否损坏。我们可以使用tika来检测文件是否损坏 maven引入如下: <depend...
    99+
    2022-06-04
    apache tika检测文件
  • MYSQL插入数据时检查字段值是否重复的方法是什么
    这篇“MYSQL插入数据时检查字段值是否重复的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MYSQL插入数据时检...
    99+
    2023-06-26
  • Android全面检测设备是否模拟器
    前言 前段时间工作有个需求,要求检测App是否在模拟器环境下运行,就像在有些手机游戏上可以看到这个功能 乍一看蛮简单的,后来我查了一下资料,然...
    99+
    2022-06-06
    检测设备 模拟器 Android
  • php检测变量是否为空的方法是什么
    在 PHP 中,可以使用以下方法来检测变量是否为空: 使用 empty() 函数:empty() 函数可以检测变量是否为空,如果变...
    99+
    2024-03-06
    php
  • MYSQL插入数据时检查字段值是否重复的方法详解
    项目需求 现有一张u_ps的车位信息表,对应每个小区的车位id ps_id自增长,每个车位又对应车位编号num,车位id由自增长,车位编号可以根据自己小区情况手动添加设置,但是不能重...
    99+
    2024-04-02
  • Win10插入耳机没声音该怎么办?Win10电脑上插耳机没声音的解决方案
    Win10插入耳机没声音该怎么办?特别是在在办公室,为了防止性格外向响声伤害到他人,大伙儿通常都挑选手机耳机播放视频,遇到这样的事情,应该怎么办?这儿为小伙伴们共享Win10电脑上插耳机没声音的解决方案,有须要的可以一起来看看。检索后,开启...
    99+
    2023-07-10
  • linux 检测远程端口是否打开方法总结
    检测远程端口是否打开 常用telnet 110.101.101.101 80方式测试远程主机端口是否打开。 除此之外还可以使用: 方法1.nmap ip -p port 测试端口 nmap i...
    99+
    2022-06-04
    端口 方法 linux
  • 脚本批量检测网站是否存活的方法
    小编给大家分享一下脚本批量检测网站是否存活的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 脚本内容编写如下:#!/bin/bashurl=(www.baid...
    99+
    2023-06-09
  • Android检测手机多点触摸点数的方法
    本文实例为大家分享了Android检测手机多点触摸点数的具体代码,供大家参考,具体内容如下 多点触摸点数效果图 Circle.java package com.zking.admi...
    99+
    2024-04-02
  • Android 单元测试的主要检测方法
      Android 单元测试 可以自检代码的准确性,避免重大错误流到后续工序中,也是编程的良好习惯。   Andorid 单元测试主要检测方法是否正确,主要步骤:   ...
    99+
    2022-06-06
    检测方法 单元 方法 单元测试 测试 Android
  • win10插耳机一边有声音的处理方法
    这篇文章给大家分享的是有关win10插耳机一边有声音的处理方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。处理办法如下:耳机本身的问题,建议更换耳机测试一下是不是耳机线路问题。如果耳机线路没问题的话那就是电脑声...
    99+
    2023-06-10
  • 检查Linux是否被入侵的方法有哪些
    本篇内容介绍了“检查Linux是否被入侵的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文给大家收集整理了一些审查Linux系统...
    99+
    2023-06-13
  • Chrome84是否支持私有方法和用户空闲检测
    今天就跟大家聊聊有关Chrome84是否支持私有方法和用户空闲检测,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。安全更新恢复 SameSite Co...
    99+
    2024-04-02
  • phpcms如何实现自动检测百度是否收录插件
    小编给大家分享一下phpcms如何实现自动检测百度是否收录插件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!已被百度收录则输出收...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作