توفر Microsoft Translate API لنظام Android UnknownHostException
-
21-12-2019 - |
سؤال
لقد جربت الكود التالي لتنفيذ تطبيق مترجم باستخدام مكتبة Microsoft Translator API التي تم العثور عليها هنا.لدي اتصال إنترنت فعال وقمت بإنشاء معرف العميل الصحيح والسر ولكن كلما حاولت تشغيل الكود أحصل على java.net.UnknownHostException
.
رمز بلدي:
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Translate.setClientId("Screened for the question"); //Change this
Translate.setClientSecret("I have screened the client secret to ask in SO"); //change
final TextView text = (TextView) findViewById(R.id.textView1);
Button Trans1 = (Button)findViewById(R.id.trans);
Trans1.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
String word = "Hello";
try {
translatedText = Translate.execute(word, Language.ENGLISH, Language.GERMAN);
// text.setText(translatedText);
} catch (Exception e) {
e.printStackTrace();
}
}
});
تتبع المكدس الخاص بي:
04-11 14:19:41.711: W/System.err(3084): java.lang.Exception: [microsoft-translator-api] Error retrieving translation : Unable to resolve host "datamarket.accesscontrol.windows.net": No address associated with hostname
04-11 14:19:41.711: W/System.err(3084): at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:202)
04-11 14:19:41.711: W/System.err(3084): at com.memetix.mst.translate.Translate.execute(Translate.java:61)
04-11 14:19:41.711: W/System.err(3084): at com.example.tanslator.TransActivity$1.onClick(TransActivity.java:45)
04-11 14:19:41.711: W/System.err(3084): at android.view.View.performClick(View.java:3571)
04-11 14:19:41.711: W/System.err(3084): at android.view.View$PerformClick.run(View.java:14247)
04-11 14:19:41.711: W/System.err(3084): at android.os.Handler.handleCallback(Handler.java:605)
04-11 14:19:41.711: W/System.err(3084): at android.os.Handler.dispatchMessage(Handler.java:92)
04-11 14:19:41.711: W/System.err(3084): at android.os.Looper.loop(Looper.java:137)
04-11 14:19:41.711: W/System.err(3084): at android.app.ActivityThread.main(ActivityThread.java:4517)
04-11 14:19:41.711: W/System.err(3084): at java.lang.reflect.Method.invokeNative(Native Method)
04-11 14:19:41.711: W/System.err(3084): at java.lang.reflect.Method.invoke(Method.java:511)
04-11 14:19:41.711: W/System.err(3084): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
04-11 14:19:41.711: W/System.err(3084): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
04-11 14:19:41.711: W/System.err(3084): at dalvik.system.NativeStart.main(Native Method)
04-11 14:19:41.711: W/System.err(3084): Caused by: java.net.UnknownHostException: Unable to resolve host "datamarket.accesscontrol.windows.net": No address associated with hostname
04-11 14:19:41.711: W/System.err(3084): at java.net.InetAddress.lookupHostByName(InetAddress.java:400)
04-11 14:19:41.711: W/System.err(3084): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
04-11 14:19:41.711: W/System.err(3084): at java.net.InetAddress.getAllByName(InetAddress.java:220)
04-11 14:19:41.711: W/System.err(3084): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:71)
04-11 14:19:41.711: W/System.err(3084): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
04-11 14:19:41.711: W/System.err(3084): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
04-11 14:19:41.711: W/System.err(3084): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
04-11 14:19:41.721: W/System.err(3084): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
04-11 14:19:41.721: W/System.err(3084): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
04-11 14:19:41.721: W/System.err(3084): at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:460)
04-11 14:19:41.721: W/System.err(3084): at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:441)
04-11 14:19:41.721: W/System.err(3084): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
04-11 14:19:41.721: W/System.err(3084): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
04-11 14:19:41.721: W/System.err(3084): at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
04-11 14:19:41.721: W/System.err(3084): at libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:188)
04-11 14:19:41.721: W/System.err(3084): at libcore.net.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:280)
04-11 14:19:41.721: W/System.err(3084): at com.memetix.mst.MicrosoftTranslatorAPI.getToken(MicrosoftTranslatorAPI.java:133)
04-11 14:19:41.721: W/System.err(3084): at com.memetix.mst.MicrosoftTranslatorAPI.retrieveResponse(MicrosoftTranslatorAPI.java:160)
04-11 14:19:41.721: W/System.err(3084): at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:199)
04-11 14:19:41.721: W/System.err(3084): ... 13 more
المحلول
لقد واجهت نفس المشكلة أيضًا باستخدام واجهة برمجة التطبيقات هذه، وقد عملت بعد تغيير الخط
translatedText = Translate.execute(word, Language.ENGLISH, Language.GERMAN);
ل
translatedText = Translate.execute(word, Language.GERMAN);
لا تنتمي إلى StackOverflow