首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android 屏蔽线控耳机,即障蔽插入耳机自动启动系统播放器

2012-09-02 
Android 屏蔽线控耳机,即屏蔽插入耳机自动启动系统播放器研究了Square Android 应用,它在刷卡界面监测耳机

Android 屏蔽线控耳机,即屏蔽插入耳机自动启动系统播放器

研究了Square Android 应用,它在刷卡界面监测耳机按钮事件,全部屏蔽掉线控事件。

MediaButtonDisabler.java:

package org.lytsing.square;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.util.Log;public class MediaButtonDisabler extends BroadcastReceiver {    private static final String TAG = "MediaButtonDisabler";    private static final BroadcastReceiver INSTANCE = new MediaButtonDisabler();    @Override    public void onReceive(Context context, Intent intent) {        Log.d(TAG, "Intercepted media button.");        abortBroadcast();    }    public static void register(Context context) {        IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);        filter.setPriority(Integer.MAX_VALUE);        context.registerReceiver(INSTANCE, filter);    }    public static void unregister(Context context) {        context.unregisterReceiver(INSTANCE);    }}

简要说明,设置过滤优先级为最高,int 的最大值(2^32 – 1 = 2147483647),这样,就会在第一时间把线控事件的广播中止,使其他应用无法接收到。

在Activity 调用:

    @Override    protected void onPause() {        super.onPause();        MediaButtonDisabler.unregister(this);    }    @Override    protected void onResume() {        super.onResume();        MediaButtonDisabler.register(this);    }

另外,我们发现一些Android手机在音频口插入我们的盒子读卡器后,音乐播放器乱放,反复播放又暂停又播放,开始以为是线控问题,屏蔽掉后,问题依旧。有做这方便的朋友,可以交流交流,分享一下。

热点排行