- ไวยากรณ์:
<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" />
- ที่อยู่ใน:
<intent-filter>
- description:
- เพิ่มข้อกำหนดในการจัดทำข้อมูลลงในตัวกรอง Intent ข้อกำหนดเฉพาะคือ
ประเภทข้อมูล โดยใช้แอตทริบิวต์
mimeType
แอตทริบิวต์ URI หรือทั้งประเภทข้อมูลและ URI URI จะระบุด้วยค่าแยกต่างหาก สำหรับแต่ละส่วนต่างๆ ดังนี้<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>|<pathAdvancedPattern>|<pathSuffix>]
แอตทริบิวต์เหล่านี้ที่ระบุรูปแบบ URI เป็นแอตทริบิวต์ที่ไม่บังคับ แต่ขึ้นอยู่กับสิ่งต่างๆ ต่อไปนี้
- หาก
scheme
ไม่ได้ระบุสำหรับตัวกรอง Intent ระบบจะไม่สนใจแอตทริบิวต์ URI อื่นๆ ทั้งหมด - หาก
host
ไม่ได้ระบุสำหรับตัวกรอง ระบบจะไม่สนใจแอตทริบิวต์port
และแอตทริบิวต์เส้นทางทั้งหมด
องค์ประกอบ
<data>
ทั้งหมดที่อยู่ภายใต้แท็กเดียวกัน ร่วมให้ข้อมูลองค์ประกอบ<intent-filter>
รายการ ตัวกรองเดียวกัน ตัวอย่างเช่น ข้อกำหนดตัวกรองต่อไปนี้<intent-filter . . . > <data android:scheme="something" android:host="project.example.com" /> ... </intent-filter>
เทียบเท่ากับข้อความนี้:
<intent-filter . . . > <data android:scheme="something" /> <data android:host="project.example.com" /> ... </intent-filter>
คุณจะวางองค์ประกอบ
<data>
กี่รายการก็ได้ภายใน<intent-filter>
เพื่อระบุข้อมูลหลายรายการ ตัวเลือก ไม่มีแอตทริบิวต์ที่มีค่าเริ่มต้นสำหรับข้อมูลเกี่ยวกับวิธีการทำงานของตัวกรอง Intent รวมถึงกฎสำหรับออบเจ็กต์ Intent ถูกจับคู่กับตัวกรอง โปรดดู ความตั้งใจและ ตัวกรอง Intent และ ตัวกรอง Intent ในภาพรวมไฟล์ Manifest
- หาก
- ดังนี้
android:scheme
- ส่วนรูปแบบของ URI นี่เป็นแอตทริบิวต์ที่จำเป็นสำหรับ
การระบุ URI ต้องตั้งค่าแอตทริบิวต์
scheme
อย่างน้อย 1 รายการ สำหรับตัวกรอง หรือแอตทริบิวต์ URI อื่นๆ ไม่มีความหมายเลยมีการระบุรูปแบบโดยไม่มีเครื่องหมายทวิภาคต่อท้าย เช่น
http
แทนที่จะเป็นhttp:
หากตัวกรองมีชุดข้อมูลประเภทข้อมูล (โดยใช้
mimeType
) แต่ไม่มีรูปแบบcontent:
และfile:
เท่านั้นหมายเหตุ: การจับคู่รูปแบบในเฟรมเวิร์กของ Android พิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ซึ่งต่างจาก RFC ดังนั้น ให้ระบุรูปแบบเสมอ โดยใช้ตัวอักษรพิมพ์เล็ก
android:host
-
ส่วนโฮสต์ของผู้ออกใบรับรอง แอตทริบิวต์นี้ไม่มีความหมาย
ยกเว้นแอตทริบิวต์
scheme
ไว้สำหรับตัวกรองด้วย หากต้องการจับคู่โดเมนย่อยหลายรายการ ให้ใช้เครื่องหมายดอกจัน (*
) เพื่อ ตรงกับอักขระ 0 ตัวขึ้นไปในโฮสต์ ตัวอย่างเช่น โฮสต์*.google.com
ตรงกับwww.google.com
,.google.com
และdeveloper.google.com
เครื่องหมายดอกจันต้องเป็นอักขระตัวแรกของแอตทริบิวต์โฮสต์ ตัวอย่างเช่น โฮสต์
google.co.*
ไม่ถูกต้องเนื่องจากไวลด์การ์ดที่เป็นเครื่องหมายดอกจันไม่ใช่อักขระตัวแรกหมายเหตุ: การจับคู่ชื่อโฮสต์ในเฟรมเวิร์ก Android มีดังนี้ พิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ซึ่งต่างจาก RFC อย่างเป็นทางการ ดังนั้น ให้ระบุเสมอ โดยใช้ตัวพิมพ์เล็ก
android:port
- ส่วนพอร์ตของผู้ออกใบรับรอง URI แอตทริบิวต์นี้มีความหมายเท่านั้น
หาก
scheme
และ มีการระบุแอตทริบิวต์host
สำหรับ ตัวกรอง android:path
android:pathPrefix
android:pathSuffix
android:pathPattern
android:pathAdvancedPattern
- เส้นทางในส่วน URI ซึ่งต้องเริ่มต้นด้วย
/
แอตทริบิวต์path
ระบุ เส้นทางที่ตรงกับเส้นทางที่สมบูรณ์ในออบเจ็กต์Intent
แอตทริบิวต์pathPrefix
ระบุเส้นทางบางส่วนที่ตรงกับ เฉพาะส่วนเริ่มต้นของเส้นทางในออบเจ็กต์Intent
แอตทริบิวต์
pathSuffix
จะมีการจับคู่กับส่วนสุดท้ายของเส้นทางทุกประการIntent
และแอตทริบิวต์นี้ไม่จำเป็นต้องเริ่มต้นด้วยอักขระ/
แอตทริบิวต์pathPattern
ระบุเส้นทางที่สมบูรณ์ที่ตรงกับ เส้นทางในออบเจ็กต์Intent
แต่สามารถมีไวลด์การ์ดต่อไปนี้ได้- เครื่องหมายดอกจัน (
*
) จะจับคู่ตัวเลขที่มีค่าเป็นศูนย์ถึงหลายครั้งของ อักขระที่อยู่ก่อนหน้าทันที - จุดตามด้วยเครื่องหมายดอกจัน (
.*
) ตรงกับการเรียงลำดับของ อักขระตั้งแต่ศูนย์ถึงจำนวนมาก
แอตทริบิวต์
pathAdvancedPattern
ระบุเส้นทางที่สมบูรณ์ ซึ่งจับคู่กับ เส้นทางที่สมบูรณ์ของออบเจ็กต์Intent
และรองรับรูปแบบที่เหมือนนิพจน์ทั่วไปต่อไปนี้-
จุด (
.
) ตรงกับอักขระใดก็ได้ -
ชุด (
[...]
) ตรงกับช่วงของอักขระ เช่น[0-5]
จะจับคู่ตัวเลขเดียวตั้งแต่ 0 ถึง 5 แต่ไม่ใช่ 6 ถึง 9[a-zA-Z]
ตรงกับตัวอักษรใดก็ได้ โดยไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ชุดยังสนับสนุนแอตทริบิวต์ "not" แป้นกดร่วม^
-
ตัวแก้ไขเครื่องหมายดอกจัน (
*
) ตรงกับรูปแบบที่อยู่ก่อนหน้า 0 ครั้งหรือมากกว่า -
ตัวแก้ไขบวก (
+
) ตรงกับรูปแบบก่อนหน้าอย่างน้อย 1 ครั้ง -
ตัวแก้ไขช่วง (
{...}
) ระบุจำนวนครั้งที่รูปแบบ ที่ตรงกัน
pathAdvancedPattern
คือการใช้งานการประเมินโดยการจับคู่ ดำเนินการกับรูปแบบในแบบเรียลไทม์โดยไม่สนับสนุนการย้อนกลับเนื่องจากมีการใช้
\
เป็นอักขระหลีกเมื่อมีการอ่านสตริง จาก XML ก่อนที่จะแยกวิเคราะห์เป็นรูปแบบ คุณจะต้อง Escape 2 ครั้ง ตัวอย่างเช่น*
ตามตัวอักษรเขียนว่า\\*
และ\
ตรงตัวเขียนว่า\\\
เช่นเดียวกับที่คุณเขียน ในการสร้างสตริงในโค้ด Javaสำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบห้าประเภทนี้ โปรดดูคำอธิบายของ
PATTERN_LITERAL
,PATTERN_PREFIX
,PATTERN_SIMPLE_GLOB
,PATTERN_SUFFIX
และPATTERN_ADVANCED_GLOB
ในช่วงPatternMatcher
ชั้นเรียนแอตทริบิวต์เหล่านี้จะมีความหมายก็ต่อเมื่อ
scheme
และhost
ไว้สำหรับตัวกรองด้วยpathSuffix
และpathAdvancedPattern
ได้เปิดตัวใน API ระดับ 31 - เครื่องหมายดอกจัน (
android:mimeType
- สื่อประเภท MIME เช่น
image/jpeg
หรือaudio/mpeg4-generic
ประเภทย่อยอาจเป็นไวลด์การ์ดดอกจัน (*
) เพื่อระบุว่ามี ประเภทย่อยที่ตรงกันตัวกรอง Intent จะประกาศองค์ประกอบ
<data>
ที่มี เฉพาะแอตทริบิวต์android:mimeType
หมายเหตุ: การจับคู่ประเภท MIME ในเฟรมเวิร์ก Android นั้น พิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ซึ่งต่างจากประเภท RFC แบบเป็นทางการ ด้วยเหตุนี้ มักทำให้ ให้ระบุประเภท MIME โดยใช้ตัวอักษรพิมพ์เล็ก
- เปิดตัวใน
- API ระดับ 1
- ดูเพิ่มเติม
<action>
<category>
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2024-08-22 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2024-08-22 UTC"],[],[]]