- cú pháp:
<data android:scheme="string" android:host="string" android:port="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:pathSuffix="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>|<pathAdvancedPattern>|<pathSuffix>]
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ínhport
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.
- Nếu không chỉ định
- 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. Bạn 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
, chứ không phảihttp:
).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ứccontent:
và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ớiwww.google.com
,.google.com
vàdeveloper.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.*
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
scheme
vàhost
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:pathSuffix
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 Ý định. Thuộc tínhpathPrefix
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ínhpathSuffix
được so khớp chính xác với phần cuối của đường dẫn trong đối tượng Ý định và thuộc tính này không bắt buộc phải bắt đầu bằng ký tự "/". Thuộc tínhpathPattern
chỉ định đường dẫn đầy đủ 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ự.
Thuộc tính
pathAdvancedPattern
chỉ định đường dẫn đầy đủ khớp với đường dẫn đầy đủ của đối tượng Ý định 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 các khoảng ký tự. 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 là 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 là 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 khoảng ("
{...}
") để chỉ định số lần mẫu có thể 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ụ: "*
" cố định 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ề 5 loại mẫu này, hãy xem nội dung mô tả về
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
vàPATTERN_ADVANCED_GLOB
trong lớpPatternMatcher
.Chỉ khi nào các thuộc tính
scheme
vàhost
cũng được chỉ định cho bộ lọc thì các thuộc tính này mới có nghĩa.pathSuffix
vàpathAdvancePattern
được giới thiệu trong API cấp 31. - Dấu hoa thị ("
android:mimeType
- Kiểu nội dung nghe nhìn MIME, ví dụ:
image/jpeg
hoặcaudio/mpeg4-generic
. Kiểu phụ có thể là ký tự đại diện dấu hoa thị (*
) để cho biết rằng mọi kiểu phụ đều khớp.Thông thường, bộ lọc ý định sẽ khai báo
<data>
chỉ bao gồm thuộc tínhandroid: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>
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2023-03-24 UTC.
[]
[]