一、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实现录音功能及播放语音功能
  2. android语音识别 android.speech 包分析
  3. Android 蓝牙耳机 语音输入与播放
  4. 小米,红米手机android 6.0以下 权限管理
  5. Android Launcher 如何去掉主菜单,所有应用摆在桌面,类似小米桌面
  6. android智能家居在线语音控制
  7. 基于Android的传感器和语音识别的设计与实现

随机推荐

  1. Android(安卓)无法解决的几处硬伤
  2. android飞行模式灰显不能操作问题分解
  3. android中使用Notification打开详情界面a
  4. Android(安卓)下拉刷新框架实现、仿新浪
  5. Android状态保存与恢复
  6. iOS,Android,WP, .NET通用AES加密算法
  7. Android:一键find控件,从此告别繁琐的findV
  8. Android(安卓)内存浅析【二】【泄漏、溢
  9. Study on Android【四】--显示控件使用
  10. 关于Handler技术