Je travaille sur une application Android (NFC) où j'ai 3 classes d'activitéChoisissez une activité par défaut sur NFC détecter
- Activité Splash (début App d'ici)
- Activité d'authentification (App attente ici pour l'authentification NFC)
- d'activité principale (reste du travail d'application ici)
Dans toutes les activités j'activer NFC.
Si l'application ne au premier plan, sur l'onglet démarrage de l'application NFC de l'activité Splash, vérifier l'autorisation, si le succès sauter
Authentication activity
et aller à l'activité principale.Si elle n'est pas autorisée, l'application passe à
Authentication activity
et attend le balayage NFC.Dans Activité principale, j'utilise NFC pour enregistrer certaines données.
Ainsi, dans toute l'activité que je dois enregistrer
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
Mais lors de l'exécution de l'application, (lorsque l'application ne premier plan en cours d'exécution) Téléphone montrant Choose an action
dialogue pour choisir une activité (où tous les choix sont app nom seulement)
Me conseiller de résoudre ce problème.
Mon AndroidManifest se présenter comme suit
<application
android:name=".util.Common"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".activity.MainActivity">
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
</activity>
<activity
android:name=".activity.SplashScreenActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@style/FullscreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- NFC Tech Filter -->
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
</activity>
<activity
android:name=".activity.AuthActivity"
android:label="@string/title_activity_auth"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
</activity>
</application>
La solution AAR est applicable lorsque j'ai plusieurs applications NFC installées dans mon téléphone et lorsque je balaye NFC une seule application à ouvrir (sans afficher la boîte de dialogue «Choisir une action»). J'ai compris à travers ce [https://gototags.com/nfc/ndef/android-application/] un article sur AAR. Corrige moi si je me trompe. Dans mon cas, mon application montre les trois activités dans mon application à choisir. – RDD