Могу ли я использовать псевдоним активности в качестве поля AAR для тега NFC?
Я попытался сделать это:
<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. Я попытался удалить намерения в реальной деятельности (на самом деле, я пробовал все комбинации намерений) и все еще та же проблема.
Я делаю что-то не так или просто неправильно понял варианты использования псевдонимов?
1 ответ
Нет, AAR может указывать только имя пакета приложения, а не имя конкретного действия (или псевдоним активности).
Однако обычно в качестве первой записи в теге обычно добавляется дополнительная запись NDEF, например запись внешнего типа. Затем вы можете настроить намеренный фильтр вашего псевдонима активности для фильтрации для этого внешнего типа:
Если ваш внешний тип - 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>