iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >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://www.lsjlt.com/news/28082.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • win10耳机插上检测不到如何解决
    如果您在Windows 10上插入耳机后没有检测到它,请尝试以下解决方法:1. 确保耳机插头已正确插入电脑的音频插孔。有时,插头不完...
    99+
    2023-08-26
    win10
  • linux插入耳机以后没有声音的解决方法
    小编给大家分享一下linux插入耳机以后没有声音的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!有一台linux系统的笔记本,在播放音乐的时候发现,扬声器外放有声音,但是接入耳机却没有声音。方法如下首先,点击任务栏...
    99+
    2023-06-10
  • 怎么检测一台机器是否宕机
    这篇文章主要介绍了怎么检测一台机器是否宕机,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。检测一台机器是否宕机的应用场景如下:1, 工作机器宕机,总控节点需要能够检测到并且将原...
    99+
    2023-06-16
  • MYSQL插入数据时检查字段值是否重复的方法是什么
    这篇“MYSQL插入数据时检查字段值是否重复的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MYSQL插入数据时检...
    99+
    2023-06-26
  • 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
  • Android检测手机多点触摸点数的方法
    本文实例为大家分享了Android检测手机多点触摸点数的具体代码,供大家参考,具体内容如下 多点触摸点数效果图 Circle.java package com.zking.admi...
    99+
    2024-04-02
  • 脚本批量检测网站是否存活的方法
    小编给大家分享一下脚本批量检测网站是否存活的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 脚本内容编写如下:#!/bin/bashurl=(www.baid...
    99+
    2023-06-09
  • 检查Linux是否被入侵的方法有哪些
    本篇内容介绍了“检查Linux是否被入侵的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文给大家收集整理了一些审查Linux系统...
    99+
    2023-06-13
  • win10插耳机一边有声音的处理方法
    这篇文章给大家分享的是有关win10插耳机一边有声音的处理方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。处理办法如下:耳机本身的问题,建议更换耳机测试一下是不是耳机线路问题。如果耳机线路没问题的话那就是电脑声...
    99+
    2023-06-10
  • phpcms如何实现自动检测百度是否收录插件
    小编给大家分享一下phpcms如何实现自动检测百度是否收录插件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!已被百度收录则输出收...
    99+
    2024-04-02
  • Chrome84是否支持私有方法和用户空闲检测
    今天就跟大家聊聊有关Chrome84是否支持私有方法和用户空闲检测,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。安全更新恢复 SameSite Co...
    99+
    2024-04-02
  • Linux中怎么快速检测网站是否宕机
    在Linux中可以使用以下几种方法快速检测网站是否宕机: 使用ping命令:在终端中输入ping ,如果能够成功接收到响应,说明...
    99+
    2023-10-21
    Linux
  • Android中LeakCanary检测内存泄漏的方法
    最近要对产品进行内存泄漏的检查,最后选择了使用Square公司开源的一个检测内存泄漏的函数库LeakCanary,在github上面搜索了一下竟然有1.6w个star,并且Android大神JakeWharton也是这个开源库的贡献者。那么...
    99+
    2023-05-30
    android 内存泄漏 roi
  • php检查类方法是否存在的方法
    这篇文章主要讲解了“php检查类方法是否存在的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php检查类方法是否存在的方法”吧!php检查类方法是否存在的方法是,使用method_exi...
    99+
    2023-06-20
  • Golang的方法:检测字符串是否以指定字符开头
    Golang的方法:检测字符串是否以指定字符开头 引言 在Golang编程中,经常会遇到需要检测字符串是否以指定字符开头的情况。本文将介绍如何使用Golang的方法来实现这一功能,并附...
    99+
    2024-03-12
    golang 方法检测 字符串开头 标准库
  • linux怎么检测远程主机端口是否开启
    在Linux系统中,可以使用以下方法来检测远程主机端口是否开启: 使用telnet命令:telnet是一个常用的网络工具,可以用来...
    99+
    2024-03-12
    linux
  • windows检测远程主机是否连通或者某个端口是否开启
    文章目录 一、检测主机是否连通步骤二、测试端口是否打开步骤telnet安装 一、检测主机是否连通 ping命令是个使用频率极高的网络诊断工具,在Windows、Unix和Linux系统下均适用。它是TCP/IP协议的一部分,...
    99+
    2023-08-19
    windows 网络 服务器
  • 在Linux终端如何快速检测网站是否宕机
    这篇文章主要为大家展示了“在Linux终端如何快速检测网站是否宕机”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在Linux终端如何快速检测网站是否宕机”这篇文章吧。方法 1:使用 fping ...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作