Android监听耳机是否插入

Android系统中,当插入耳机或者拔出耳机,会发出一个广播。

这个广播必须是在代码里面注册Receiver才有效,在xml中添加intentfilter没效。

private static BroadcastReceiver mHeadSetReceiver =  new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
            int state = intent.getIntExtra("state", -1);
            switch (state) {
            case 0:
                mIsHeadSetPlugged = false;
                break;
            case 1:
                mIsHeadSetPlugged = true;
                break;
            default:
                Log.d(TAG, "未知状态");
                break;
            }

        }
    }

};

public void onResume() {
    IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_HEADSET_PLUG);
    mContext.registerReceiver(mHeadSetReceiver, filter);
}
时间: 2024-08-07 08:24:39

Android监听耳机是否插入的相关文章

Android -- 检测耳机插入状态

原理                                                                                    其实android系统在耳机插入和拔出的时候都会发送广播,所以我们要想检测耳机的状态只需要注册响应的BroadCastReceiver,对状态进行响应的判断就ok了. 这个广播的名字叫做:android.intent.action.HEADSET_PLUG Code                               

Android布局PreferenceActivity——插入layout文件

有两种方式: 1.布局文件activity_mian.xml需要添加一个ListView控件,且id为list,不然不能运行,应该是由于PreferenceActivity是一个List. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:l

Android短信插入器源码

package com.examp.createsms; import android.app.Activity; import android.content.ContentResolver; import android.content.ContentValues; import android.net.Uri; import android.os.Bundle; public class MainActivity extends Activity { @Override protected

android SQLite 批量插入数据慢的解决方案 (正对于不同的android api 版本)

SQLite,是一款轻型的数据库,被广泛的运用到很多嵌入式的产品中,因为占用的资源非常少,二其中的操作方式几乎和我们接触的数据库不多,甚至只有几百K的他自然会被需求者青睐,下面讲一下在这样的轻型数据库中怎么对他进行一些读写操作. 之前做选择联系人的时候出现如果一个手机里联系人超过2000的话,往数据库里面插入会非常耗时,不同的手机存储的条数不同,这个存储的数量和手机的内存有很大的关系,往往取决于手机内存,下面对于数据量大的情况来写一下sqlite的批量查询. SqLite 掺入数据有几种 第一种

Android 数据库 大量插入 事务开启

对比在android中批量插入数据的3中方式对比(各插入1W条数据所花费的时间): 1. 一个一个插入 publicstaticboolean insert(SQLiteOpenHelper openHelper, RemoteAppInfo appInfo) { if (null == appInfo) { returntrue; } SQLiteDatabase db = null; try { db = openHelper.getWritableDatabase(); ContentVa

Android监听耳机按键事件

在工作中,我们有时候会处理到耳机按键的逻辑,主要分为两类,一种是短按,一种是长按. 监听耳机的按键事件的方法有两种: 方法一:注册监听Media Button的按键事件 import android.app.Activity; import android.app.ProgressDialog; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.conten

android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本)

原地址 :http://www.cnblogs.com/wangmars/p/3914090.html SQLite,是一款轻型的数据库,被广泛的运用到很多嵌入式的产品中,因为占用的资源非常少,二其中的操作方式几乎和我们接触的数据库不多,甚至只有几百K的他自然会被需求者青睐,下面讲一下在这样的轻型数据库中怎么对他进行一些读写操作. 之前做选择联系人的时候出现如果一个手机里联系人超过2000的话,往数据库里面插入会非常耗时,不同的手机存储的条数不同,这个存储的数量和手机的内存有很大的关系,往往取决

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

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

Android EditText中插入图片并响应点击事件

EditText中插入图片基本就是两种方法: 1,通过Html.fromHtml(..)来实现 [mw_shl_code=java,true]eText.append(Html.fromHtml("<img src='" + R.drawable.ohoh + "'/>", imageGetter, null));[/mw_shl_code] 2,通过ImageSpan与SpannableString/SpannableStringBuilder. [m