Computer >> Máy Tính >  >> Lập trình >> Android

Bộ lọc ý định trong Android là gì?


Bộ lọc ý định là một thể hiện của lớp IntentFilter. Bộ lọc ý định rất hữu ích khi sử dụng ý định ngầm, Nó sẽ không xử lý trong mã java, chúng tôi phải thiết lập nó trong AndroidManifest.xml. Android phải biết nó đang khởi chạy loại ý định nào để các bộ lọc ý định cung cấp thông tin cho android về ý định và hành động.

Trước khi khởi chạy ý định, android sẽ thực hiện kiểm tra hành động, kiểm tra danh mục và kiểm tra dữ liệu. Ví dụ này minh họa về cách sử dụng bộ lọc ý định trong android.

Bước 1 - Tạo một dự án mới trong Android Studio, đi tới Tệp ⇒ Dự án Mới và điền tất cả các chi tiết cần thiết để tạo một dự án mới.

Bước 2 - Thêm mã sau vào res / layout / activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
   xmlns:app="https://schemas.android.com/apk/res-auto"
   xmlns:tools="https://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:gravity="center"
   android:orientation="vertical"
   tools:context=".MainActivity">
   <Button
      android:id="@+id/buton"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="intent filter button" />
</LinearLayout>

Ở trên, chúng tôi đã đưa ra một nút khi bạn nhấp vào nút, nó sẽ hiển thị ý định cùng với hành động.

Bước 3 - Thêm mã sau vào src / MainActivity.java

package com.example.andy.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
public class MainActivity extends AppCompatActivity {
   RadioButton radioButton;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      final Button button = findViewById(R.id.buton);
      button.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("message/rfc822");
            intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"contact@tutorialspoint.com"});
            intent.putExtra(Intent.EXTRA_SUBJECT, "Welcome to tutorialspoint.com");
            startActivity(Intent.createChooser(intent, "Choose default Mail App"));
         }
      });
}
}

Ở trên khi người dùng nhấp vào nút, nó sẽ gọi ý định bằng ACTION_SEND và sẽ đặt loại là message / rfc882. Bây giờ chúng tôi đã chuyển id email và thông điệp chủ đề.

Bước 4 - Thêm mã sau vào tệp kê khai.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
   package="com.example.andy.myapplication">
   <uses-permission android:name="android.permission.INTERNET" />
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="message/rfc822" />
         </intent-filter>
      </activity>
</application>
</manifest>

Ở trên, chúng tôi đã khai báo hành động, danh mục và dữ liệu. Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị Di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động sẽ hiển thị màn hình mặc định của bạn -

Bộ lọc ý định trong Android là gì?

Nhấp vào nút trên, nó sẽ gọi trình chọn mục đích để chọn ứng dụng để gửi dữ liệu từ mục đích như hình dưới đây -

Bộ lọc ý định trong Android là gì?

Chúng tôi đã chọn ứng dụng gmail như hình dưới đây -

Bộ lọc ý định trong Android là gì?

Trong kết quả trên, nó sẽ lấy dữ liệu từ ý định và thêm vào ứng dụng gmail.