cú pháp:
<data android:scheme="string"
      android:host="string"
      android:port="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:mimeType="string" />
chứa trong:
<intent-filter>
nội dung mô tả:
Thêm thông số kỹ thuật dữ liệu vào bộ lọc ý định. Thông số kỹ thuật có thể chỉ là một loại dữ liệu (thuộc tính mimeType), một URI hoặc vừa là loại dữ liệu vừa là URI. URI được các thuộc tính riêng biệt cho từng phần của URI đó chỉ định:

<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]

Các thuộc tính chỉ định định dạng URL này mang tính không bắt buộc, nhưng cũng phụ thuộc lẫn nhau:

  • Nếu không chỉ định scheme cho bộ lọc ý định thì mọi thuộc tính URI khác sẽ bị bỏ qua.
  • Nếu không chỉ định host cho bộ lọc thì thuộc tính port và mọi thuộc tính đường dẫn sẽ bị bỏ qua.

Tất cả các phần tử <data> chứa trong cùng phần tử <intent-filter> đều đóng góp vào cùng bộ lọc. Vì vậy, ví dụ như thông số kỹ thuật của bộ lọc sau,

<intent-filter . . . >
    <data android:scheme="something" android:host="project.example.com" />
    . . .
</intent-filter>

sẽ tương đương với đoạn mã như sau:

<intent-filter . . . >
    <data android:scheme="something" />
    <data android:host="project.example.com" />
    . . .
</intent-filter>

Bạn có thể đặt bất kỳ số lượng phần tử <data> nào vào bên trong <intent-filter> để cung cấp nhiều tuỳ chọn dữ liệu. Không có thuộc tính nào của bộ lọc này có giá trị mặc định.

Bạn có thể xem thông tin về cách thức hoạt động của bộ lọc ý định, kể cả quy tắc khớp đối tượng Ý định với bộ lọc, trong tài liệu khác có tên là Ý định và Bộ lọc ý định. Hãy xem thêm mục Bộ lọc ý định trong phần tổng quan về tệp kê khai.

thuộc tính:
android:scheme
Phần giao thức của URI. Đây là thuộc tính thiết yếu tối thiểu để chỉ định URI. Phải đặt ít nhất một thuộc tính scheme cho bộ lọc, nếu không, sẽ không có thuộc tính nào trong các thuộc tính URI khác có nghĩa.

Giao thức được chỉ định mà không có dấu hai chấm theo sau (ví dụ: http thay vì http:).

Nếu bộ lọc có tập hợp loại dữ liệu (thuộc tính mimeType) nhưng không có giao thức nào, thì giao thức content:file: sẽ được sử dụng.

Lưu ý: Việc so khớp giao thức trong khung Android có phân biệt chữ hoa chữ thường, không giống như RFC. Do đó, lúc nào bạn cũng phải chỉ định giao thức bằng chữ cái viết thường.

android:host
Phần máy chủ lưu trữ của đơn vị quản lý URI. Chỉ khi nào thuộc tính scheme cũng được chỉ định cho bộ lọc thì thuộc tính này mới có nghĩa. Để so khớp nhiều miền con, hãy sử dụng dấu hoa thị (*) để so khớp với ký tự số không hoặc nhiều ký tự khác trong máy chủ lưu trữ. Ví dụ: máy chủ lưu trữ *.google.com khớp với www.google.com, .google.comdeveloper.google.com.

Dấu hoa thị phải là ký tự đầu tiên của thuộc tính máy chủ lưu trữ. Ví dụ: máy chủ lưu trữ google.co.* là máy chủ lưu trữ không hợp lệ vì ký tự đại diện dấu hoa thị không phải là ký tự đầu tiên.

Lưu ý: Việc so khớp tên máy chủ lưu trữ trong khung Android có phân biệt chữ hoa chữ thường, khác với RFC chính thức. Do đó, lúc nào bạn cũng phải chỉ định tên máy chủ lưu trữ bằng chữ cái viết thường.

android:port
Phần cổng của đơn vị quản lý URI. Chỉ khi nào thuộc tính schemehost cũng được chỉ định cho bộ lọc thì thuộc tính này mới có nghĩa.
android:path
android:pathPrefix
android:pathPattern
Phần đường dẫn của URI phải bắt đầu bằng ký tự /. Thuộc tính path chỉ định đường dẫn đầy đủ được so khớp với đường dẫn đầy đủ trong đối tượng Ý định. Thuộc tính pathPrefix chỉ định một phần đường dẫn chỉ được so khớp với phần đầu của đường dẫn trong đối tượng Ý định. Thuộc tính pathPattern chỉ định đường dẫn đầy đủ được so khớp với đường dẫn đầy đủ trong đối tượng Ý định, nhưng có thể chứa các ký tự đại diện sau:
  • Dấu hoa thị ("*") khớp với một chuỗi từ 0 đến nhiều lần xuất hiện của ký tự liền trước.
  • Dấu chấm, theo sau là dấu hoa thị (".*") khớp với mọi chuỗi từ 0 đến nhiều ký tự.

Vì "\" được sử dụng làm ký tự thoát khi chuỗi được đọc từ XML (trước khi được phân tích cú pháp dưới dạng mẫu), nên bạn cần phải thực hiện thoát kép: Ví dụ: ''*" có giá trị cố định sẽ được viết là "\\*" và "\" có giá trị cố định sẽ được viết là "\\\\". Về cơ bản, việc này tương tự như những gì bạn cần viết nếu xây dựng cấu tạo chuỗi trong mã Java.

Để biết thêm thông tin về ba loại mẫu này, hãy xem nội dung mô tả về PATTERN_LITERAL, PATTERN_PREFIXPATTERN_SIMPLE_GLOB trong lớp PatternMatcher.

Chỉ khi nào thuộc tính schemehost cũng được chỉ định cho bộ lọc thì các thuộc tính này mới có nghĩa.

android:mimeType
Loại phương tiện MIME, ví dụ: image/jpeg hoặc audio/mpeg4-generic. Loại phụ có thể là ký tự đại diện dấu hoa thị (*) để cho biết rằng mọi loại phụ đều khớp.

Thông thường, bộ lọc ý định sẽ khai báo <data> chỉ bao gồm thuộc tính android:mimeType.

Lưu ý: Việc so khớp kiểu MIME trong khung Android có phân biệt chữ hoa chữ thường, không giống như các loại MIME RFC chính thức. Do đó, lúc nào bạn cũng phải chỉ định loại MIME bằng chữ cái viết thường.

lần đầu xuất hiện:
API Cấp 1
xem thêm:
<action>
<category>