2017-09-13 52 views
0

我工作的一個Android應用(支持NFC),其中我有3個活動課選擇NFC的默認行爲檢測

  1. 飛濺活動(應用程序從這裏開始)
  2. 身份驗證活動(應用程序在此等候對於NFC認證)
  3. 主要活動(這裏的應用程序工作的其他地區)

在我需要啓用NFC的所有活動。

  1. 如果應用程序沒有在前臺,在飛濺的活動選項卡NFC應用啓動,檢查授權,如果成功跳過Authentication activity並轉到主要活動。

  2. 如果未獲得授權,則應用程序將轉至Authentication activity並等待NFC刷卡。

  3. 在主要活動中,我使用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

一種解決方案可以工作將明確提出了AAR(Android應用程序記錄)一個NDEF記錄在標籤上,使竊聽標籤時,應用程序是不在前臺啓動應用程序。 對於任何其他解決方案,我假定您需要微調清單。

+0

AAR解決方案適用於我在手機中安裝了多個NFC應用程序,以及當我刷卡NFC時只有一個應用程序打開(不顯示「選擇操作」對話框)。我通過這個[https://gototags.com/nfc/ndef/android-application/]文章瞭解了AAR。如我錯了請糾正我。就我而言,我的應用程序正在我的應用程序中顯示所有三種活動以供選擇。 – RDD