2010年4月21日星期三

在Android應用程序內使用Google Translate API, google-api-translate-java



要在Android應用程序內使用Google的Translate API, 除了按照文章google-api-translate-java下載並添加jar之外, 還需要在AndroidMainfest.xml文件中添加"android.permission.INTERNET"權限.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.AndroidTranslate"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AndroidTranslate"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>


main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/mytext"
/>
</LinearLayout>


主代碼
package com.AndroidTranslate;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import com.google.api.translate.Language;
import com.google.api.translate.Translate;


public class AndroidTranslate extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

TextView myTranslatedText = (TextView)findViewById(R.id.mytext);

Translate.setHttpReferrer("http://androidbiancheng.blogspot.com/");
try {
String trText = Translate.execute("Hello Android Translate!",
Language.ENGLISH, Language.CHINESE_TRADITIONAL);
myTranslatedText.setText(trText);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
myTranslatedText.setText("Can't Translate!");
}
}
}


相關文章: 使用Google Translate API編寫自己的Android詞典



3 則留言:

  1. 請問是不是少了一些參數設定的說明 我直接拿這段code來用會回傳authentication required

    回覆刪除
  2. 這個我也不清楚, 我重新做一次沒有這個問題, 即使我忘記添加"android.permission.INTERNET"權限, 也不是顯示authentication required.

    會不會是你所在的network不允許訪問Google Translate? Google Translate是一個在線服務!

    你在中國國內嗎? 或者經Proxy?

    回覆刪除
  3. 請問他說
    Caused by: java.lang.IllegalStateException: You MUST have a Google API Key to use the V2 APIs. See http://code.google.com/apis/language/translate/v2/getting_started.html

    該怎麼解決呢

    回覆刪除