I wrote a program that invokes Google Translator android application via Intent.ACTION_VIEW
.
The problem is that invoking the Google Translator App does not work anymore, although it did once.
The code is identical to the code given here:
Returning Translated Text from Google Translate Activity
(yes, I tried to replace my code by that code, the Google Translator App behaves as if it does not receive any data.)
Currently I cannot specify the text and the two languages. The best I can do is to use ACTION_SEND
, but it ignores the two languages:
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"));
What actually happened when I ran this code was: the Google Translator asked me if I want to translate from English and translated "What is going on?" to French.
So: how do I pass the languages to the Google Translate App now?
UPDATE:
The following code works with the new version of Google Translate Application:
As you can see, this is the standard ACTION_SEND with additional parameters "to" and "from".
There's a gotcha: "key_text_input" takes preference over Intent.EXTRA_TEXT, and "to" and "from" work only with "key_text_input".
If you have an impression that no data is passed (at all), maybe it is because you use 3-character language codes instead of 2-character ones. But the codes for Chinese are zh-CN and zh-TW.
My previous post:
The action and the parameter names have changed.
They have changed it once again:
UPDATE: It is possible to pass the languages if you pack the text and the languages into an URI: