- ไวยากรณ์:
<activity-alias android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:targetActivity="string" > ... </activity-alias>
- ที่อยู่ใน:
<application>
- สามารถมีข้อมูลต่อไปนี้
<intent-filter>
<meta-data>
- description:
- ชื่อแทนของกิจกรรม ตั้งชื่อโดย
targetActivity
เป้าหมายต้องอยู่ในแอปพลิเคชันเดียวกันกับ และประกาศก่อนชื่อแทนในไฟล์ Manifestชื่อแทนนำเสนอกิจกรรมเป้าหมายเป็นเอนทิตีอิสระ และมีชุดความตั้งใจเป็นของตัวเองได้ ตัวกรอง มากกว่า Intent จะกรองในตัวกิจกรรมเป้าหมายเอง รวมทั้งระบุ Intent สามารถเปิดใช้งานเป้าหมายผ่านชื่อแทนและวิธีที่ระบบ ที่ถือเป็นนามแฝง
ตัวอย่างเช่น ตัวกรอง Intent ในชื่อแทนอาจ ระบุ
"android.intent.action.MAIN"
และ"android.intent.category.LAUNCHER"
" เพื่อทำให้ ไว้ในตัวเรียกใช้งานแอปพลิเคชัน แม้ว่าจะไม่มี ตัวกรองในกิจกรรมเป้าหมายได้ตั้งค่าแฟล็กเหล่านี้ยกเว้น
targetActivity
,<activity-alias>
เป็นส่วนหนึ่งของแอตทริบิวต์<activity>
สำหรับแอตทริบิวต์ในชุดย่อย ไม่มีค่าที่ตั้งไว้สำหรับเป้าหมายที่ส่งต่อ ชื่อแทน แต่สำหรับแอตทริบิวต์ที่ไม่ได้อยู่ในชุดย่อย ค่าที่กำหนดไว้สำหรับ กิจกรรมเป้าหมายจะใช้กับชื่อแทนด้วย - ดังนี้
android:enabled
- ระบบสร้างอินสแตนซ์กิจกรรมเป้าหมายโดยใช้
ชื่อแทนนี้
"true"
หากทำได้ และ"false"
หากทำได้ ค่าเริ่มต้นคือ"true"
องค์ประกอบ
<application>
ของตัวเอง แอตทริบิวต์enabled
ที่ใช้กับแอตทริบิวต์ทั้งหมด คอมโพเนนต์ของแอปพลิเคชัน รวมถึงชื่อแทนกิจกรรม<application>
และ<activity-alias>
แอตทริบิวต์ทั้งคู่ต้องเป็น"true"
เพื่อให้ระบบสร้างอินสแตนซ์ได้ กิจกรรมเป้าหมายผ่านชื่อแทน หากข้อใดข้อหนึ่งคือ"false"
ชื่อแทน ใช้งานไม่ได้ android:exported
- คอมโพเนนต์ของแอปพลิเคชันอื่นสามารถเรียกใช้กิจกรรมเป้าหมายได้หรือไม่
ผ่านชื่อแทนนี้
"true"
หากทำได้ และ"false"
หากทำได้ หาก"false"
กิจกรรมเป้าหมายสามารถเปิดผ่านชื่อแทนได้โดย คอมโพเนนต์ของแอปพลิเคชันเดียวกับชื่อแทนหรือแอปพลิเคชันที่มีรหัสผู้ใช้เดียวกันค่าเริ่มต้นจะขึ้นอยู่กับว่าชื่อแทนมีตัวกรอง Intent หรือไม่ ไม่มีตัวกรองใดๆ หมายความว่ากิจกรรมดังกล่าวสามารถเรียกใช้ผ่านชื่อแทนได้ โดยการระบุชื่อแทนเท่านั้น แสดงว่าชื่อแทน มีไว้เพื่อใช้ภายในแอปพลิเคชันเท่านั้น เนื่องจากมีผู้อื่นไม่ทราบชื่อ ดังนั้น ค่าเริ่มต้นคือ
"false"
ในขณะที่ การมีตัวกรองอย่างน้อยหนึ่งรายการบ่งบอกว่านามแฝง มีไว้สำหรับใช้ภายนอก ดังนั้นค่าเริ่มต้นจะเป็น"true"
android:icon
- ไอคอนสำหรับกิจกรรมเป้าหมายเมื่อแสดงต่อผู้ใช้ผ่านชื่อแทน
ดูข้อมูลเพิ่มเติมได้ที่องค์ประกอบ
<activity>
icon
android:label
- ป้ายกำกับที่ผู้ใช้อ่านได้สำหรับชื่อแทนเมื่อแสดงต่อผู้ใช้ผ่านชื่อแทน
ดูข้อมูลเพิ่มเติมได้ที่องค์ประกอบ
<activity>
label
android:name
- ชื่อที่ไม่ซ้ำกันสำหรับชื่อแทน ชื่อนี้คล้ายกับ ชื่อคลาสที่ผ่านการรับรอง แต่ต่างจากชื่อของกิจกรรมเป้าหมาย จะใช้นามแฝงก็ได้ ซึ่งไม่ได้หมายถึงชั้นเรียนจริง
android:permission
- ชื่อสิทธิ์ที่ลูกค้าต้องใช้เพื่อเปิดกิจกรรมเป้าหมาย
หรือสั่งให้ทำอะไรบางอย่างโดยใช้ชื่อแทน หากผู้โทร
startActivity()
หรือ วันที่startActivityForResult()
ไม่มีการให้สิทธิ์ที่ระบุ กิจกรรมเป้าหมายจะไม่เปิดใช้งานแอตทริบิวต์นี้จะแทนที่สิทธิ์ที่ตั้งไว้สำหรับกิจกรรมเป้าหมาย ถ้า ไม่ได้ตั้งค่าไว้ จึงไม่จำเป็นต้องมีสิทธิ์เพื่อเปิดใช้งานเป้าหมายผ่านชื่อแทน
ดูข้อมูลเพิ่มเติมเกี่ยวกับสิทธิ์ได้ที่ สิทธิ์ ในภาพรวมไฟล์ Manifest ของแอป
android:targetActivity
- ชื่อของกิจกรรมที่เปิดใช้งานผ่านชื่อแทนได้
ชื่อนี้ต้องตรงกับแอตทริบิวต์
name
ของ<activity>
องค์ประกอบก่อนหน้า ชื่อแทนในไฟล์ Manifest
- เปิดตัวใน
- API ระดับ 1
- ดูเพิ่มเติม
<activity>
<activity-alias>
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 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"]],["อัปเดตล่าสุด 2025-07-27 UTC"],[],[],null,["# <activity-alias\u003e\n\nsyntax:\n:\n\n ```xml\n \u003cactivity-alias android:enabled=[\"true\" | \"false\"]\n android:exported=[\"true\" | \"false\"]\n android:icon=\"drawable resource\"\n android:label=\"string resource\"\n android:name=\"string\"\n android:permission=\"string\"\n android:targetActivity=\"string\" \u003e\n ...\n \u003c/activity-alias\u003e\n ```\n\ncontained in:\n: [\u003capplication\u003e](/guide/topics/manifest/application-element)\n\ncan contain:\n: [\u003cintent-filter\u003e](/guide/topics/manifest/intent-filter-element)\n\n [\u003cmeta-data\u003e](/guide/topics/manifest/meta-data-element)\n\ndescription:\n: An alias for an activity, named by the `targetActivity`\n attribute. The target must be in the same application as the\n alias and declared before the alias in the manifest.\n\n\n The alias presents the target activity as an independent entity, and can have its own set of intent\n filters. They, rather than the\n intent filters on the target activity itself, determine which intents\n can activate the target through the alias and how the system\n treats the alias.\n\n For example, the intent filters on the alias might\n specify the [\"android.intent.action.MAIN\"](/reference/android/content/Intent#ACTION_MAIN)\n and [\"android.intent.category.LAUNCHER\"](/reference/android/content/Intent#CATEGORY_LAUNCHER)\" flags, causing it to\n be represented in the application launcher, even though none of the\n filters on the target activity itself set these flags.\n\n\n With the exception of `targetActivity`, `\u003cactivity-alias\u003e`\n attributes are a subset of [\u003cactivity\u003e](/guide/topics/manifest/activity-element) attributes.\n For attributes in the subset, none of the values set for the target carry over\n to the alias. However, for attributes not in the subset, the values set for\n the target activity also apply to the alias.\n\nattributes:\n:\n\n `android:enabled`\n : Whether the target activity can be instantiated by the system through\n this alias. `\"true\"` if it can be, and `\"false\"` if not.\n The default value is `\"true\"`.\n\n\n The [\u003capplication\u003e](/guide/topics/manifest/application-element) element has its own\n [enabled](/guide/topics/manifest/application-element#enabled) attribute that applies to all\n application components, including activity aliases. The\n `\u003capplication\u003e` and `\u003cactivity-alias\u003e`\n attributes must both be `\"true\"` for the system to be able to instantiate\n the target activity through the alias. If either is `\"false\"`, the alias\n doesn't work.\n\n `android:exported`\n : Whether the components of other applications can launch the target activity\n through this alias. `\"true\"` if they can, and `\"false\"` if not.\n If `\"false\"`, the target activity can be launched through the alias only by\n components of the same application as the alias or applications with the same user ID.\n\n\n The default value depends on whether the alias contains intent filters. The\n absence of any filters means that the activity can be invoked through the alias\n only by specifying the exact name of the alias. This implies that the alias\n is intended only for application-internal use, since others don't know its name.\n So, the default value is `\"false\"`.\n On the other hand, the presence of at least one filter implies that the alias\n is intended for external use, so the default value is `\"true\"`.\n\n `android:icon`\n : An icon for the target activity when presented to users through the alias.\n For more information, see the [\u003cactivity\u003e](/guide/topics/manifest/activity-element) element's\n [icon](/guide/topics/manifest/activity-element#icon) attribute.\n\n `android:label`\n : A user-readable label for the alias when presented to users through the alias.\n For more information, see the [\u003cactivity\u003e](/guide/topics/manifest/activity-element) element's\n [label](/guide/topics/manifest/activity-element#label) attribute.\n\n \u003cbr /\u003e\n\n `android:name`\n\n : A unique name for the alias. The name resembles a fully qualified class name. But, unlike the name of the target activity, the alias name is arbitrary. It doesn't refer to an actual class. \u003cbr /\u003e\n\n `android:permission`\n : The name of a permission that clients must have to launch the target activity\n or get it to do something using the alias. If a caller of\n [startActivity()](/reference/android/content/Context#startActivity(android.content.Intent)) or\n [startActivityForResult()](/reference/android/app/Activity#startActivityForResult(android.content.Intent, int))\n isn't granted the specified permission, the target activity isn't activated.\n\n This attribute supplants any permission set for the target activity itself. If\n it isn't set, a permission isn't needed to activate the target through the alias.\n\n\n For more information about permissions, see the\n [Permissions](/guide/topics/manifest/manifest-intro#perms)\n section in the app manifest overview.\n\n `android:targetActivity`\n : The name of the activity that can be activated through the alias.\n This name must match the `name` attribute of an\n [\u003cactivity\u003e](/guide/topics/manifest/activity-element) element that precedes\n the alias in the manifest.\n\n \u003cbr /\u003e\n\nintroduced in:\n: API level 1\n\nsee also:\n: [\u003cactivity\u003e](/guide/topics/manifest/activity-element)"]]