【发布时间】:2017-06-11 13:49:23
【问题描述】:
大家好,我是 Android 新手,正在尝试构建英语到德语的翻译器,当我在移动屏幕上运行此应用程序时出现上述错误。
包 com.exmaple.android.lang_trans;
导入 java.util.Locale;
导入android.app.Activity;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入 android.speech.tts.TextToSpeech;
导入 android.speech.tts.TextToSpeech.OnInitListener;
导入android.util.Log;
导入android.view.View;
导入android.view.View.OnClickListener;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入 com.exmaple.android.lang_trans.R;
导入 com.memetix.mst.language.Language;
导入 com.memetix.mst.translate.Translate;
公共类 MainActivity 扩展 Activity 实现 OnInitListener {
private TextToSpeech tts;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tts = new TextToSpeech(this, this);
((Button) findViewById(R.id.bSpeak)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
speakOut(((TextView) findViewById(R.id.tvTranslatedText)).getText().toString());
}
});
((Button) findViewById(R.id.bTranslate)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
class bgStuff extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
try {
if (params.length > 0) {
return translate(params[0]);
}
} catch (Exception e) {
e.printStackTrace();
return e.toString();
}
return null;
}
@Override
protected void onPostExecute(String result) {
((TextView) findViewById(R.id.tvTranslatedText)).setText(result);
}
}
new bgStuff().execute(((EditText) findViewById(R.id.etUserText)).getText().toString());
}
});
}
public String translate(String text) throws Exception {
// Set the Client ID / Client Secret once per JVM. It is set statically and applies to all services
Translate.setClientId("CLIENT ID"); //Change this
Translate.setClientSecret("CLIENT SECRET"); //change
String translatedText = "";
translatedText = Translate.execute(text, Language.GERMAN);
return translatedText;
}
@Override
public void onInit(int status) {
// TODO Auto-generated method stub
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.GERMAN);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
//speakOut("Ich");
}
} else {
Log.e("TTS", "Initilization Failed!");
}
}
private void speakOut(String text) {
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
}
【问题讨论】:
标签: android permissions runtime microsoft-translator