I'm trying to make an Android translator application using Google Translation Api ("google-api-services-translate-v2-rev48.1.22.0.jar).
I managed to get a valid key and I've tested it from a simple Java Project and everything works perfect. But, when I try to use the same code in an Android Application, nothing works.
This is the code from 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 don't know for sure where the problem is. The only thing I get when trying to translate is:
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: KnoxVpnUidStorageknoxVpnSupported API value returned is false
In android, I've tried withcom.google.api.client.http.javanet.NetHttpTransport()
and AndroidHttp.newCompatibleTransport()
.
In my initial java project, I've used GoogleNetHttpTransport.newTrustedTransport()
, but when using it in Android, got me some exceptions:
java.security.KeyStoreException: java.security.NoSuchAlgorithmException: KeyStore JKS implementation not found