2017-12-27 6 views
1

Google Assistant (시작/열기 명령 사용) 또는 실행기 아이콘에서 내 활동이 시작되었는지 확인할 수있는 확실한 방법이 있습니까?Google Assistant 음성 상호 작용 열기 명령

열기 명령 상태

에 대한 문서 (기본적으로 작동합니다. 어떤 특정 목적)

는 그래서 난 totaly 낙관적 아니에요.

+0

기술적으로 두 가지의 차이가 없어야하며 사용자가 음성 및 수동으로 동일한 결과를 얻으려고하기 때문에 두 동작이 동일하므로이 동작을 처리해야합니다. – MatPag

+0

기본적으로 맞습니다. 하지만 다른 행동이 필요해. – Vlad

답변

1

짧은 대답 : 사실 NO

기본 음성 명령 : XYZ 응용 프로그램의 이름입니다 Open XYZ은 실제로 당신이 요청이 처리되었음을 알려 연결된 모든 정보가 없습니다 Google 길잡이.

이미 말씀 드렸듯이 개발자가 사용자가 열 수있는 명령을 통해 응용 프로그램을 열어 볼 수없는 동작을 추가하는 것을 방지하기위한 조치 일 수 있습니다.

참고 : 사용자가 예를 Open XYZ and play ABC song를 들어, 추가 명령을 지정 경우이 here을 설명 된대로 onCreate() 방법에 getAction()으로 얻을 수있는 사용자 정의 의도 결과 만이 특정 아니다.

참고 :이 구글 도우미 음성 상호 작용 열기 명령에 의해 시작되는 경우 구글 도우미 음성 상호 작용 열기 명령에 의해 그 시작은

당신이 얻을 것이다 경우 응용 프로그램을 디버깅 할 때 https://developers.google.com/voice-actions/system/#open_actions

+0

나에게 큰 문제처럼 들리지는 않는다. 그러나 이것이 Google 로직이라고 생각한다. – Vlad

+0

네가 맞다. 나는 그것이 올바른 논리라고 생각한다. 'open' 커맨드는 가장 기본적인 커맨드이며 아이콘의 수동 탭이 만들어 내지 않는 부작용을 일으키지 않아야합니다. – MatPag

+0

왜 그래? – Vlad

1

나는 다음과 같은 차이를 발견 "android.intent.extra.REFERRER_NAME는"getIntent()에서 키를 포함한다. getExtras()를

getIntent(). getExtras(). C를 ontainsKey ("android.intent.extra.REFERRER_NAME")

if(getIntent().getExtras()!= null && getIntent().getExtras().containsKey("android.intent.extra.REFERRER_NAME")){ 
      Log.e(TAG, "onCreate: From Voice assistance"); 
     }else{ 
      Log.e(TAG, "onCreate: Not From Voice assistance"); 
     } 

하지만이 메뉴에서 시작하는 경우, 해당 키를 얻을 수 없습니다.

이 경우 문제가 해결 될 수도 있습니다.

+0

두 경우 모두이 키를 얻지 못합니다.런처는 구글의 발사기 있다면 그것은 유용 할 수 있습니다 패치, 그들은 모두 같은 패키지 – Vlad

+0

@Vlad 내가 편집 한 대답을 확인하시기 바랍니다있다, getReferrer()와 레퍼러를 얻을 수 있지만,하지 제몫 솔루션 –

+0

내가 말했듯이, 안드로이드 8.1을 탑재 한 Nexus 6P에서이 키를 전혀 얻지 못한다. – Vlad