Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
cú pháp:
<data android:scheme="string"
      android:host="string"
      android:port="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:pathAdvancedPattern="string"
      android:mimeType="string" />
có 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ị (*) nhằm 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
android:pathAdvancedPattern
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 đủ khớp với đường dẫn đầy đủ trong đối tượng Intent. 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 đủ khớp với đường dẫn đầy đủ trong đối tượng Intent, 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ự.

Thuộc tính pathAdvancedPattern chỉ định đường dẫn đầy đủ khớp với đường dẫn đầy đủ của đối tượng Intent và hỗ trợ các mẫu giống biểu thức chính quy sau:

  • Dấu chấm (".") khớp với ký tự bất kỳ.
  • Một tập hợp ("[...]") khớp với ký tự phạm vi. Ví dụ: [0-5] khớp với một chữ số từ 0 đến 5 nhưng không khớp với chữ số từ 6 đến 9. Tương tự, [a-zA-Z] khớp với mọi chữ cái bất kể cách viết hoa. Các tập hợp cũng hỗ trợ đối tượng sửa đổi không phải là ^.
  • Đối tượng sửa đổi dấu sao ("*") khớp với mẫu đứng trước 0 hoặc nhiều lần.
  • Đối tượng sửa đổi dấu cộng ("+") khớp với mẫu đứng trước 1 hoặc nhiều lần.
  • Bạn có thể sử dụng đối tượng sửa đổi phạm vi ("{...}") để chỉ định số lần mẫu có thể khớp.
Trình so khớp pathAdvancedPattern là một cách triển khai đơn giản cho hoạt động đánh giá, trong đó phương thức khớp được thực hiện dựa trên mẫu theo thời gian thực mà không hỗ trợ theo dõi ngược.

Vì "\" được dùng làm ký tự thoát khi chuỗi được đọc bằng XML (trước khi được phân tích cú pháp dưới dạng mẫu), nên bạn sẽ cần hai ký tự thoát: Ví dụ: "*" sẽ được viết là "\\*" và "\" cố định sẽ được viết là "\\\\". Về cơ bản, nội dung này tương tự như nội dung bạn cần viết khi xây dựng 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_PREFIX, PATTERN_SIMPLE_GLOBPATTERN_ADVANCED_GLOB trong lớp PatternMatcher.

Chỉ khi nào 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>