<活動別名>

語法:
<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>
說明:
活動的別名,以 targetActivity 屬性命名。目標必須與別名位於相同的應用程式中,而且它在資訊清單中的宣告順序必須在別名之前。

別名會將獨立活動顯示為獨立實體,並且可擁有專屬的一組意圖篩選器。與目標活動本身擁有的意圖篩選器不同,它們會自行確定哪些意圖可以透過別名啟用目標,以及系統處理別名的方式。

舉例來說,即使目標活動本身上的所有篩選器皆未設定「"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",則只有以下元件能透過別名啟動目標活動:與別名位於相同應用程式的元件,或應用程式具備相同使用者 ID 的元件。

預設值取決於別名是否包含意圖篩選器。若不含任何篩選器,代表只能指定別名的確切名稱,透過別名叫用活動。這表示別名僅供應用程式內部使用,因為其他應用程式不知道該名稱。因此,預設值為 "false"。另一方面,若出現至少一個篩選器,表示別名會用於外部用途,因此預設值為 "true"

android:icon
透過別名向使用者顯示時,目標活動的圖示。詳情請參閱 <activity> 元素的 icon 屬性。
android:label
透過別名向使用者顯示時,別名的使用者可理解標籤。詳情請參閱 <activity> 元素的 label 屬性。

android:name
別名的專屬名稱,與完整類別名稱類似。然而,與目標活動的名稱不同,別名是任意的,不會參照實際類別。

android:permission
權限名稱,用戶端必須具有該權限才能啟動目標活動,或透過別名執行某些操作。如果 startActivity()startActivityForResult() 的呼叫端未獲得指定權限,則系統不會啟動目標活動。

此屬性會取代目標活動本身的任何權限設定。如未設定此屬性,則無需權限即可透過別名啟動目標。

如要進一步瞭解權限,請參閱應用程式資訊清單總覽中的「權限」一節。

android:targetActivity
可透過別名啟動的活動名稱。這個名稱必須與資訊清單中別名前方 <activity> 元素的 name 屬性相符。

導入版本:
API 級別 1
另請參閱:
<activity>