2013-10-02 4 views
2

Intent.ACTION_VIEW을 통해 Google Translator android 응용 프로그램을 호출하는 프로그램을 작성했습니다. 문제는 Google 번역기 앱을 호출하는 것이 더 이상 작동하지 않는다는 것입니다.Google 번역 활동이 더 이상 작동하지 않습니다.

코드는 여기에 주어진 코드와 동일합니다 :

Returning Translated Text from Google Translate Activity

가 (예, 내가 그 코드에 의해 내 코드를 대체하는 시도가 어떤 데이터를 수신하지 않는 것처럼 응용 프로그램이 동작하는 구글 번역기.)

현재 텍스트와 두 언어를 지정할 수 없습니다. 내가 할 수있는 최선 ACTION_SEND을 사용하는 것입니다,하지만 두 언어를 무시 :이 코드가 있었다 실행할 때 실제로 무슨 일이 있었는지

 Intent i = new Intent(); 
     i.setAction(Intent.ACTION_SEND); 
     i.putExtra(Intent.EXTRA_TEXT, "What is going on?"); 
     i.putExtra("key_text_input", "What time is it?"); 
     i.putExtra("key_text_output", ""); 
     i.putExtra("key_language_from", "en"); 
     i.putExtra("key_language_to", "es"); 
     i.putExtra("key_suggest_translation", ""); 
     i.putExtra("key_from_floating_window", false); 
     i.setComponent(new ComponentName("com.google.android.apps.translate", 
      "com.google.android.apps.translate.translation.TranslateActivity")); 

: 구글 번역기는 "나는 영어 번역 할 경우 나에게 물었다 번역 무엇 진행되고있다?" 프랑스어로.

So : 지금 Google 번역 앱에 어떻게 언어를 전달합니까?

답변

1

UPDATE :

다음 코드는 구글의 새 버전 번역 응용 프로그램과 함께 작동 : 당신이 볼 수 있듯이

 Intent i = new Intent(); 
     i.setAction(Intent.ACTION_SEND); 
     i.putExtra(Intent.EXTRA_TEXT, "What is going on?"); 
     i.putExtra("key_text_input", "Oh my God! What is going on here?"); 
     //i.putExtra("key_text_output", ""); 
     i.putExtra("from", "en"); 
     i.putExtra("to", "zh-CN"); 
     //i.putExtra("key_suggest_translation", ""); 
     //i.putExtra("key_from_floating_window", false); 
     i.setComponent(new ComponentName("com.google.android.apps.translate", 
       "com.google.android.apps.translate.HomeActivity")); 

, 이것은 추가 매개 변수를 "을"과 "에서"와 표준 ACTION_SEND입니다 .

"key_text_input"은 Intent.EXTRA_TEXT보다 우선하며 "to"와 "from"은 "key_text_input"에서만 작동합니다.

전혀 데이터가 전달되지 않는다는 인상을받는다면 2 문자 문자 대신 3 문자 언어 코드를 사용하기 때문일 수 있습니다. 그러나 중국어 코드는 zh-CN과 zh-TW입니다.

내 이전 게시물 :

조치와 이름이 변경된 매개 변수.

 Intent i = new Intent(); 
     i.setAction("com.google.android.apps.translate.action.QUERY"); 
     i.putExtra("key_text_input", "Oh my God! What is going on?"); 
     i.putExtra("key_text_output", ""); 
     i.putExtra("from", "en"); 
     i.putExtra("to", "zh-CN"); 
     i.putExtra("key_suggest_translation", ""); 
     i.putExtra("key_from_floating_window", false); 
     i.setComponent(new ComponentName("com.google.android.apps.translate", 
      "com.google.android.apps.translate.translation.TranslateActivity")); 
7

그들은 다시 한 번 그것을 변경되었습니다

  intent.setAction(Intent.ACTION_SEND); 
      intent.setType("text/plain"); 
      intent.setPackage("com.google.android.apps.translate"); 

      intent.putExtra(Intent.EXTRA_TEXT, text); 

UPDATE를 : 입니다 가능한 당신이 URI에 텍스트와 언어 팩 경우 언어를 전달하는 :

  intent = new Intent(); 
      intent.setAction(Intent.ACTION_VIEW); 
      intent.setPackage("com.google.android.apps.translate"); 

      Uri uri = new Uri.Builder() 
        .scheme("http") 
        .authority("translate.google.com") 
        .path("/m/translate") 
        .appendQueryParameter("q", "c'est l'meunier Mathurin qui caresse les filles au tic-tac du moulin") 
        .appendQueryParameter("tl", "pl") // target language 
        .appendQueryParameter("sl", "fr") // source language 
        .build(); 
      //intent.setType("text/plain"); //not needed, but possible 
      intent.setData(uri); 
+0

감사합니다. 이전의 모든 솔루션을 사용해 보았지만 제대로 작동하지 않았습니다. API를 변경하는 데 계속해서 좌절감을 느낍니다. 우리를 계속 업데이 트하는 ks! – Bruce

+0

실제로 작동하는 유일한 해결책은 해당 URI를 사용하는 것입니다. – Virusman

+0

고마워요. – cuasodayleo

관련 문제