我正在开发一款Android应用程序(支持NFC),其中我有3个活动类
在所有活动中,我需要启用NFC。
如果app不在前台,在选项卡NFC应用程序中启动Splash活动,请检查授权,如果成功跳过Authentication activity
并转到主要活动。
如果未获得授权,则应用会转到Authentication activity
并等待NFC滑动。
在主要活动中,我使用NFC记录一些数据。
所以在我必须注册的所有活动中
<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" />
但是在运行应用程序时,(当应用程序未运行前台时)电话显示Choose an action
对话框以选择活动(其中所有选项仅为应用程序名称)
建议我解决这个问题。
我的AndroidManifest如下所示
<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>
答案 0 :(得分:0)
一个可行的解决方案是在标签上明确地放置带有AAR(Android应用程序记录)的NDEF记录,以便在应用程序不在前台时点击标记启动应用程序。 对于任何其他解决方案,我假设您需要微调清单。