2017-06-11 2 views
-1

Bonjour à tous je suis nouveau à Android et en essayant de construire un traducteur anglais vers allemand et je reçois l'erreur ci-dessus quand je exécuter cette application sur l'écran mobile.java.lang.exception microsoft-translator-api erreur retreiving traduction: permission refusée (permission internet manquant?)

package com.exmaple.android.lang_trans;

import java.util.Locale;

importer android.app.Activity;

import android.os.AsyncTask;

import android.os.Bundle;

import android.speech.tts.TextToSpeech;

importez android.speech.tts.TextToSpeech.OnInitListener;

import android.util.Log;

importer android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

importez android.widget.EditText;

import android.widget.TextView;

import com.exmaple.android.lang_trans.R;

import com.memetix.mst.language.Language;

import com.memetix.mst.translate.Translate;

MainActivity public class étend l'activité met en œuvre 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); 
} 

}

Répondre

0

L'erreur dit que vous n'avez pas demandé la permission d'accéder à Internet dans votre manifeste, vous devez ajouter cette ligne

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

sous le <manifest bloc