【发布时间】:2023-04-09 13:11:01
【问题描述】:
我正在尝试使用 Google Translation Api(“google-api-services-translate-v2-rev48.1.22.0.jar”)制作一个 Android 翻译应用程序。
我设法获得了一个有效的密钥,并通过一个简单的 Java 项目对其进行了测试,一切正常。 但是,当我尝试在 Android 应用程序中使用相同的代码时,没有任何效果。
这是来自android的代码:
Translate translator = new Translate.Builder (new NetHttpTransport(), GsonFactory.getDefaultInstance(), null)
.setApplicationName("MyAppName")
.build();
try {
TranslationsListResponse response = getListOfParameters(fromLanguage, toLanguage, textToTranslate).execute();
StringBuffer sb = new StringBuffer();
for (TranslationsResource tr : response.getTranslations()) {
sb.append (tr.getTranslatedText() + " ");
}
return sb.toString();
}
catch (IOException e) {
Log.e("ERROR", "Got error while trying to translate");
}
private Translate.Translations.List getListOfParameters (String fromLanguage, String toLanguage, String textToTranslate) throws IOException {
Translate.Translations.List list = translator.new Translations().list (Arrays.asList(textToTranslate), toLanguage.toUpperCase());
list.setKey (TranslatorManager.TRANSLATION_GOOGLE_API_KEY);
list.setSource (fromLanguage.toUpperCase());
return list;
}
我不确定问题出在哪里。我尝试翻译时唯一得到的是:
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: KnoxVpnUidStorageknoxVpnSupported API value returned is false
在 android 中,我尝试过使用com.google.api.client.http.javanet.NetHttpTransport() 和AndroidHttp.newCompatibleTransport()。
在我最初的 java 项目中,我使用了GoogleNetHttpTransport.newTrustedTransport(),但是在 Android 中使用它时,我遇到了一些异常:
java.security.KeyStoreException: java.security.NoSuchAlgorithmException: KeyStore JKS implementation not found
【问题讨论】:
-
看看这个其他答案是否对您有帮助:stackoverflow.com/a/39285052/322738
-
OP,Rafael Steil 链接的问题对寻找解决方案有用吗?
-
OP,您是否尝试使用 Rafael 链接的线程中的建议?似乎解决方案是更改使用的 HTTP 传输。让我们知道!
标签: java android google-api google-translate android-httptransport