我试过这样做:
<application android:label="@string/app_name" >
<activity android:name="com.blablabla.NfcLauncherActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
<activity-alias
android:enabled="true"
android:exported="true"
android:label="an alias"
android:name=".AnAlias"
android:targetActivity="com.blablabla.NfcLauncherActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity-alias>
如果我在标签中将com.blablabla写为AAR,一切正常,但如果我写的话.AnAlias只是带我去Play商店。我试图在实际活动中删除意图(事实上,我已经尝试了所有意图的组合)并且仍然存在同样的问题。
我做错了什么,或者我只是误解了别名的用例?
答案 0 :(得分:0)
不,AAR只能指定应用程序包名称,而不能指定特定活动(或活动别名)的名称。
但是,您通常会将额外的NDEF记录作为标记上的第一条记录,例如外部类型记录。然后,您可以设置activity-alias的intent-filter以过滤该外部类型:
如果您的外部类型是blablabla.com:mytype,则您的活动别名需要具有以下意图过滤器:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="vnd.android.nfc"
android:host="ext"
android:pathPrefix="/blablabla.com:mytype" />
</intent-filter>