【问题标题】:java.lang.exception microsoft-translator-api Error retreiving translation: permission denied (missing internet permission?)java.lang.exception microsoft-translator-api 检索翻译时出错:权限被拒绝(缺少互联网权限?)
【发布时间】: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


    【解决方案1】:

    错误表明您没有请求访问互联网的权限 在您的清单中,您应该添加这一行

    <uses-permission android:name="android.permission.INTERNET" />
    

    &lt;manifest 块下

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 2021-07-02
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 2015-11-09
      相关资源
      最近更新 更多