一、AndroidManifest.xml 配置:

<activity-alias            android:name="包名"            android:icon="@mipmap/ic_launcher"            android:label="测试语音"            android:targetActivity="调起界面">            <intent-filter>                <action android:name="android.intent.action.ASSIST" />                <action android:name="android.intent.action.VOICE_COMMAND" />                <category android:name="android.intent.category.DEFAULT" />                <category android:name="android.intent.category.VOICE_LAUNCH" />            intent-filter>        activity-alias>

二、配置广播

<receiver android:name=".MediaButtonReceiver">            <intent-filter>                <action android:name="android.intent.action.MEDIA_BUTTON" />                <action android:name="android.media.AUDIO.BECOMING_NOISY" />            intent-filter>        receiver>

三、广播

public class MediaButtonReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {            KeyEvent keyEvent = intent.getParcelableExtra("android.intent.extra.KEY_EVENT");            if (keyEvent != null) {                LogUtil.i("keyEvent _ keyevent --> :" + keyEvent.toString());                int keyCode = keyEvent.getKeyCode();                LogUtil.i("keyCode __ : " + keyCode);                switch (keyCode) {                    case KeyEvent.KEYCODE_MEDIA_PAUSE:                        break;                    case KeyEvent.KEYCODE_MEDIA_PLAY:                        break;                    case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:                        break;                    case KeyEvent.KEYCODE_HEADSETHOOK:                        break;                }            }        }    }}

四、注册广播成为唯一(小米不适用)

ComponentName componentName;AudioManager manager;@Override    public void onCreate() {        super.onCreate();        manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);        componentName = new ComponentName(getPackageName(), MediaButtonReceiver.class.getName());        manager.registerMediaButtonEventReceiver(componentName);        manager.setBluetoothScoOn(true);        manager.startBluetoothSco();    }@Override    public void onDestroy() {        manager.setBluetoothScoOn(false);        manager.stopBluetoothSco();        manager.unregisterMediaButtonEventReceiver(componentName);        super.onDestroy();    }

更多相关文章

  1. Android(安卓)接收开机广播启动service/activity
  2. 【Android网络通话】关于语音通话LinPhone笔记_android(一)
  3. 小区广播接收流程
  4. android 获得监听某一广播的所有程序
  5. android(2)(循环发送短信)
  6. android 使用广播监听网络状态
  7. mac电脑开发android找不到设备
  8. Android(java)学习笔记94:关于广播接收者的注册和使用心得
  9. BroadcastReciver 广播接收者---DAY06 2014 06 03

随机推荐

  1. Android(安卓)高仿微信头像截取 打造不一
  2. android 画饼图 Canvas drawArc
  3. visual studio2019 Android SDK API28出
  4. Android PDF开发:android-pdfview
  5. android模拟sd卡的问题
  6. AIDL跨进程通讯
  7. Android 抢购类倒计时实现 (包括天数,小时,
  8. Android 开发环境下载连接
  9. Android多平台推送
  10. 3.系统运行库