我开发了一个Android应用程序,它使用以下代码启动Google Translate Activity:
...
Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
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"));
startActivityForResult(i, 0);
...
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i("yoyo", "in onActivityResult()");
// data is null
}
我的应用程序从Google Translate Activity调用父onActivityResult(),但 data
为null . 因此,我认为无法将任何翻译后的文本从Google Translate返回到我的应用程序中 . 它是否正确?
此外,如果有办法做到这一点,是否会违反API的服务条款?如果使用谷歌翻译离线语言包/翻译,它仍然是违规的吗?
如果谷歌开发人员(员工)碰巧看到这个并且可能会有所影响,我将不胜感激 . 我真的在寻找官方回应 .
谢谢!
1 回答
我也很想知道这是否可行 .
同时,如果你需要翻译简单的文本here一个包装Google Translate Http Service的类 .
我从未在 生产环境 环境中使用它(阅读已发布的应用程序)因为我不确定它是否合法 .
因此,如果Google(员工)会回答您的问题 . 如果这种方法合法,我们可以告诉我们 .
为方便起见,这里包含了Google Translate Http Service的简单AsyncTask:
[RESTClient类]是HttpClient的包装器,你可以找到source code here
问候,
卢卡