📌  相关文章
📜  如何使用Firebase ML Kit在Android中创建语言检测器?

📅  最后修改于: 2021-05-13 13:56:06             🧑  作者: Mango

我们已经看到许多应用程序在其应用程序中提供不同的语言支持,并且我们还看到了许多ML应用程序,在这些应用程序中,我们可以看到我们可以检测到用户输入的文本的语言。在本文中,我们将创建一个应用程序,在该应用程序中,我们将检测Android应用程序中输入文本的语言。因此用于检测该文本的语言。我们将使用Firebase ML Kit ,它将检测文本的语言并显示适当的语言代码。

我们将在本文中构建什么?

我们将构建一个简单的应用程序,在其中显示一个EditText字段,在其中必须添加任何语言的文本和一个用于检测该文本语言的按钮。添加文本后,我们将单击“检测语言”按钮,将检测到文本的语言,然后我们将看到该语言的代码。下面提供了一个示例视频,以使您对我们在本文中将要做的事情有个大概的了解。注意,我们将使用Java语言实现该项目。

分步实施

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。

第2步:将您的应用连接到Firebase

在Android Studio中创建新项目后,将您的应用连接到Firebase。用于将您的应用程序连接到Firebase。导航到顶部栏上的“工具”。之后,单击Firebase。右侧将打开一个新窗口。在该窗口中,单击Firebase ML,然后在Android中单击“使用Firebase ML工具包”。您可以在屏幕截图下方看到该选项。

单击此选项后,您将看到以下屏幕。在此屏幕上,单击“连接到Firebase”选项以将您的应用程序连接到Firebase。您将看到以下屏幕。

单击“连接”选项,将您的应用程序连接到Firebase,并将以下依赖项添加到build.gradle文件中。

步骤3:在build.gradle文件中添加用于语言检测的依赖项

导航至应用程序> Gradle脚本> build.gradle文件,然后将以下代码添加到其中。在代码中添加了注释,以便更详细地了解。

步骤4:在您的Android应用中添加Internet权限以访问Internet

导航至应用程序> AndroidManifest.xml文件,然后将以下代码添加到其中。在代码中添加了注释,以便更详细地了解。

XML


XML


  
    
    
  
    
    


Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
  
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
  
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage;
import com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentification;
  
public class MainActivity extends AppCompatActivity {
  
    // creating variables for our image view, 
    // text view and two buttons.
    private EditText edtLanguage;
    private TextView languageCodeTV;
    private Button detectLanguageBtn;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          
        // on below line we are initializing our variables.
        edtLanguage = findViewById(R.id.idEdtLanguage);
        languageCodeTV = findViewById(R.id.idTVDetectedLanguageCode);
        detectLanguageBtn = findViewById(R.id.idBtnDetectLanguage);
          
        // adding on click listener for button
        detectLanguageBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // getting string from our edit text.
                String edt_string = edtLanguage.getText().toString();
                // calling method to detect language.
                detectLanguage(edt_string);
            }
        });
    }
  
    private void detectLanguage(String string) {
        // initializing our firebase language detection.
        FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
          
        // adding method to detect language using identify language method.
        languageIdentifier.identifyLanguage(string).addOnSuccessListener(new OnSuccessListener() {
            @Override
            public void onSuccess(String s) {
                // below line we are setting our 
                // language code to our text view.
                languageCodeTV.setText(s);
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                // handling error method and displaying a toast message.
                Toast.makeText(MainActivity.this, "Fail to detect language : \n" + e, Toast.LENGTH_SHORT).show();
            }
        });
    }
}


步骤5:使用activity_main.xml文件

导航到应用程序> res>布局> activity_main.xml,然后将以下代码添加到该文件中。以下是activity_main.xml文件的代码。

XML格式



  
    
    
  
    
    

步骤6:使用MainActivity。 Java文件

转到MainActivity。 Java文件并参考以下代码。下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。

Java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
  
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
  
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.ml.naturallanguage.FirebaseNaturalLanguage;
import com.google.firebase.ml.naturallanguage.languageid.FirebaseLanguageIdentification;
  
public class MainActivity extends AppCompatActivity {
  
    // creating variables for our image view, 
    // text view and two buttons.
    private EditText edtLanguage;
    private TextView languageCodeTV;
    private Button detectLanguageBtn;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          
        // on below line we are initializing our variables.
        edtLanguage = findViewById(R.id.idEdtLanguage);
        languageCodeTV = findViewById(R.id.idTVDetectedLanguageCode);
        detectLanguageBtn = findViewById(R.id.idBtnDetectLanguage);
          
        // adding on click listener for button
        detectLanguageBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // getting string from our edit text.
                String edt_string = edtLanguage.getText().toString();
                // calling method to detect language.
                detectLanguage(edt_string);
            }
        });
    }
  
    private void detectLanguage(String string) {
        // initializing our firebase language detection.
        FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
          
        // adding method to detect language using identify language method.
        languageIdentifier.identifyLanguage(string).addOnSuccessListener(new OnSuccessListener() {
            @Override
            public void onSuccess(String s) {
                // below line we are setting our 
                // language code to our text view.
                languageCodeTV.setText(s);
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                // handling error method and displaying a toast message.
                Toast.makeText(MainActivity.this, "Fail to detect language : \n" + e, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

现在运行您的应用程序,并查看该应用程序的输出:

输出:

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!