百度api翻译android代码
时间: 2023-12-13 10:04:13 浏览: 27
当然,我可以帮你提供一个使用百度翻译 API 的 Android 代码示例。在使用之前,请确保已经申请到了百度翻译 API 的密钥。
首先,在你的 Android 项目中,创建一个新的 Java 类,例如 `BaiduTranslateUtil`。然后在该类中添加以下代码:
```java
import android.os.AsyncTask;
import android.util.Log;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class BaiduTranslateUtil {
private static final String API_URL = "https://fanyi-api.baidu.com/api/trans/vip/translate";
private static final String API_KEY = "YOUR_API_KEY";
private static final String API_SECRET = "YOUR_API_SECRET";
public interface TranslationCallback {
void onTranslationComplete(String result);
void onTranslationError(String errorMessage);
}
public static void translate(String text, String sourceLanguage, String targetLanguage, TranslationCallback callback) {
String encodedText = URLEncoder.encode(text);
String url = API_URL + "?q=" + encodedText + "&from=" + sourceLanguage + "&to=" + targetLanguage + "&appid=" + API_KEY + "&salt=123456&sign=" + generateSign(text);
new TranslationTask(callback).execute(url);
}
private static String generateSign(String text) {
String sign = API_KEY + text + "123456" + API_SECRET;
sign = MD5Util.encode(sign);
return sign;
}
private static class TranslationTask extends AsyncTask<String, Void, String> {
private TranslationCallback callback;
public TranslationTask(TranslationCallback callback) {
this.callback = callback;
}
@Override
protected String doInBackground(String... urls) {
try {
URL url = new URL(urls[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
return response.toString();
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onPostExecute(String result) {
if (result != null) {
Log.d("Translation", result);
callback.onTranslationComplete(result);
} else {
callback.onTranslationError("Translation error occurred.");
}
}
}
}
```
在上述代码中,你需要将 `YOUR_API_KEY` 和 `YOUR_API_SECRET` 替换为你在百度翻译 API 平台上申请到的密钥。
接下来,你可以在你的 Activity 或 Fragment 中使用 `BaiduTranslateUtil` 类的 `translate` 方法来调用百度翻译 API。例如:
```java
BaiduTranslateUtil.translate("Hello world!", "en", "zh", new BaiduTranslateUtil.TranslationCallback() {
@Override
public void onTranslationComplete(String result) {
// 处理翻译结果
}
@Override
public void onTranslationError(String errorMessage) {
// 处理翻译错误
}
});
```
这个示例代码会将英文的 "Hello world!" 翻译成中文。你可以根据自己的需求修改源语言和目标语言。
请注意,该示例代码仅提供了基本的使用方法,并未处理网络请求的线程问题。在实际开发中,你可能需要使用更合适的网络请求库来处理异步请求和错误处理。
希望这能帮到你!如果还有其他问题,请随时提问。