如何使用云翻译 API

问题描述 投票:0回答:0

`protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

 inputToTranslate = findViewById(R.id.inputToTranslate);
    translatedTv = findViewById(R.id.translatedTv);
   Button translateButton = findViewById(R.id.translateButton);

    translateButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (checkInternetConnection()) {

                //If there is internet connection, get translate service and start translation:
                getTranslateService();
                translate();

            } else {

                //If not, display "no connection" warning:
                translatedTv.setText(getResources().getString(R.string.no_connection));
            }
        }
    });

}
public void getTranslateService() {

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    try (InputStream is = getResources().openRawResource(R.raw.my_secret)) {

        //Get credentials:
        final GoogleCredentials myCredentials = GoogleCredentials.fromStream(is);

        //Set credentials and get translate service:
        TranslateOptions translateOptions = TranslateOptions.newBuilder().setCredentials(myCredentials).build();
        Translate translate = (Translate) translateOptions.getService();

    } catch (IOException ioe) {
        ioe.printStackTrace();

    }
}

public void translate() {

    //Get input text to be translated:
    originalText = inputToTranslate.getText().toString();
    Translation translation = translate.translate(originalText, Translate.TranslateOption.targetLanguage("tr"), Translate.TranslateOption.model("base"));
    translatedText = translation.getTranslatedText();

    //Translated text and original text are set to TextViews:
    translatedTv.setText(translatedText);

}

public boolean checkInternetConnection() {

    //Check internet connection:
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    //Means that we are connected to a network (mobile or wi-fi)
    connected = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
            connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED;

    return connected;
}

`目前我正在尝试使用云翻译 api 构建语言翻译应用程序,但是 我遇到了这个错误。

E/AndroidRuntime: 致命异常: main 进程:com.myclou.cloud,PID:21288 java.lang.NullPointerException:尝试调用接口方法 'com.google.cloud.translate.Translation com.google.cloud.translate.Translate.translate(java.lang.String, com.google.cloud.translate.Translate$TranslateOption [])' 在空对象引用上 在 com.my.cloud.MainActivity.translate(MainActivity.java:84) 在 com.my.cloud.MainActivity$1.onClick(MainActivity.java:49) 在 android.view.View.performClick(View.java:7892) 在 android.widget.TextView.performClick(TextView.java:16219) 在 com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1202) 在 android.view.View.performClickInternal(View.java:7869) 在 android.view.View.-$$Nest$mperformClickInternal(未知来源:0) 在 android.view.View$PerformClick.run(View.java:30880) 在 android.os.Handler.handleCallback(Handler.java:942) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loopOnce(Looper.java:226) 在 android.os.Looper.loop(Looper.java:313) 在 android.app.ActivityThread.main(ActivityThread.java:8757) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

api cloud translation
© www.soinside.com 2019 - 2024. All rights reserved.