Android -- 检测耳机插入状态

原理                                                                                   

其实android系统在耳机插入和拔出的时候都会发送广播,所以我们要想检测耳机的状态只需要注册响应的BroadCastReceiver,对状态进行响应的判断就ok了。

这个广播的名字叫做:android.intent.action.HEADSET_PLUG

Code                                                                                   

package com.yydcdut.ear;

import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //给广播绑定响应的过滤器
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.intent.action.HEADSET_PLUG");
        HeadsetReceiver headsetReceiver = new HeadsetReceiver();
        registerReceiver(headsetReceiver, intentFilter);
    }

    //自己定义的广播接收器
    public class HeadsetReceiver extends BroadcastReceiver {  

        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.hasExtra("state")) {
                if (0 == intent.getIntExtra("state", 0)) {
                    Toast.makeText(context, "耳机未插入", Toast.LENGTH_SHORT).show();
                } else if (1 == intent.getIntExtra("state", 0)) {
                    Toast.makeText(context, "耳机已插入", Toast.LENGTH_SHORT).show();
                }
            }
        }
    }
}

Android -- 检测耳机插入状态,布布扣,bubuko.com

时间: 2024-08-09 02:02:48

Android -- 检测耳机插入状态的相关文章

android实现耳机插入和拔出状态检测

在Android下实现检测耳机插入和拔出,需要建立一个BroadcastReceiver,用来监听"android.intent.action.HEADSET_PLUG"广播. 实现步骤: 1.创建一个BroadcastReceiver的子类,并重写onReceive()方法,在该方法中编写接收到广播后的处理逻辑: 2.创建一个Activity类,在onCreate()方法中使用registerReceiver()方法进行注册监听广播: 3.在Activity中重写onDestory(

iOS 检测耳机插入/拔出

http://www.verydemo.com/demo_c134_i28481.html 开发过程中录音和播放这块碰到了一些问题,麻烦的主要有三个: 检测是否有声音输入设备 当有多个声音输出设备时,指定声音输出设备 检测耳机的插入和拔出 第一个问题,对于iTouch和iPad等本身不带麦克风的设备,需要检查是否插入了带录音功能的耳机:对于iphone,由于其本身已近自带麦克风,所以相对容易.第二个问题,当在本身带有外放的设备上插入耳机等输出设备时,就出现了多个输出设备,需要实现在程序中指定将声

检测耳机插入和拔出

实时检测耳机插入和拔出: 每当插入和拔出耳机时,系统都会发送Intent广播, 所以,只需要用一个receiver把这个广播intent(获取的action是:"android.intent.action.HEADSET_PLUG")截获就好. 这个receiver必须要用代码注册,而不能写在manifest里面用写入内存的方式. 在Android下实现检测耳机插入和拔出,也即建立一个Broadcast Receiver,监听"android.intent.action.HE

android检测网络连接状态示例讲解

网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置 Android连接首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): 复制代码 代码如下: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="a

Android 检测网络连接状态

Android APP需要连接网络的时候,并不是每次都能连接到网络,因此需要在程序对当前设备的网络状态进行检测,以便及时对用户进行提醒. 判断网络状态,需要有相应的权限,权限代码如下(AndroidManifest.xml): <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.perm

iOS检测耳机插入拔出

首先,需要导入两个框架 然后,注册通知检测耳机的插入与拔出操作 1 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(outputDeviceChanged:)name:AVAudioSessionRouteChangeNotification object:[AVAudioSession sharedInstance]]; 2 [[NSNotificationCenter defaultCente

android 检测是否插入U盘方法之一

本方法是检测文件/proc/partitions. import java.io.*; File Usbfile = new File("/proc/partitions");if(Usbfile.exists()){ try { FileReader  file= new FileReader("/proc/partitions"); BufferedReader br=new BufferedReader(file); String strLine="

检测android的网络链接状态

http://www.oschina.net/question/100267_61129?sort=default&p=1#tags_nav http://www.cnblogs.com/top5/archive/2011/12/29/2306241.html http://www.open-open.com/lib/view/open1342353575260.html http://blog.csdn.net/ithomer/article/details/7896313 检测android

Android 的网络链接状态

Android手机对于系统状态的改变 ,如:信的接收,电话的接收,电池电量过低,网络状态改变都会发一个广播 .有了广播机制,我们只需要创建一个广播接受者来处理这个广播,就可以实现在不同状态下做出不同的操作. 本篇主要记录一下对于网络状态改变的监听.首先定义一个类继承NetworkChangeReceiver,重写onReceive()就行了.然后在OnReceive()这个方法进行相应广播的处理. public class NetWorkReceiver extends BroadcastRec