代码之家  ›  专栏  ›  技术社区  ›  Ali Shafai

action_voice_命令不起作用

  •  1
  • Ali Shafai  · 技术社区  · 8 年前

    我正在使用这个代码片段激活android上的语音命令。

      Intent newIntent = new Intent(Intent.ACTION_VOICE_COMMAND);
        newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        getApplicationContext().sendBroadcast(newIntent);
    

    它什么也做不了,甚至在我的日志目录中也没有错误:

    06-03 13:26:24.325 203-822/? D/audio_hw_primary: out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
    06-03 13:26:24.335 203-822/? D/audio_hw_primary: select_devices: out_snd_device(2: speaker) in_snd_device(0: none)
    06-03 13:26:24.335 203-822/? D/msm8974_platform: platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15)
    06-03 13:26:24.335 203-822/? D/audio_hw_primary: enable_snd_device: snd_device(2: speaker)
    06-03 13:26:24.338 203-822/? D/audio_hw_primary: enable_audio_route: apply and update mixer path: low-latency-playback
    
        --------- beginning of system
    06-03 13:26:26.277 786-892/? D/ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 100]
    06-03 13:26:27.551 203-822/? D/audio_hw_primary: disable_audio_route: reset and update mixer path: low-latency-playback
        disable_snd_device: snd_device(2: speaker)
    

    当我在亚行运行这个程序时,它会让google助手:

    adb shell am start -a android.intent.action.VOICE_COMMAND
    

    这很奇怪,技术上是一样的。 我是不是丢了许可证什么的?

    1 回复  |  直到 8 年前
        1
  •  4
  •   Pavneet_Singh    8 年前

    From Docs

    活动操作:启动语音命令。

    因此,要启动语音命令助手活动,请使用 startActivity 作为

    getApplicationContext().startActivity(newIntent);
    

    而不是

    getApplicationContext().sendBroadcast(newIntent);
    

    喜欢

    Intent newIntent = new Intent(Intent.ACTION_VOICE_COMMAND);
    newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    getApplicationContext().startActivity(newIntent);
    //                      ^^^^^^^^^^^^
    

    有没有办法让用户界面不出现并覆盖我的用户界面?或者至少 谷歌助理听了我的话后就离开了 语音命令?

    你可以用 Google Assistant Service sdk 这里是 android quick start guide