【问题标题】:How to redirect the AAR on an NFC tag to a new application ID?如何将 NFC 标签上的 AAR 重定向到新的应用程序 ID?
【发布时间】:2018-03-23 09:35:18
【问题描述】:

我有一个带有两条记录的 NDEF NFC 标签:

  • 第一个包含我的网站 URL。
  • 第二个是 AAR,其中包含我的旧应用程序的应用程序 ID。

到目前为止,当发现NFC标签时,旧应用程序已正常启动。

但我想创建一个新的应用程序来处理这些 NFC 标签,而不是旧的。

我已在清单中添加:

<android:name=".splash.SplashActivity"
    android:screenOrientation="portrait"
    android:stateNotNeeded="true"
    android:theme="@style/SplashTheme">

    <meta-data android:name="android.nfc.action.TECH_DISCOVERED"
        android:resource="@xml/nfc_tech_filter" />

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.nfc.action.NDEF_DISCOVERED" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:host="http://website.com" android:scheme="http" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.nfc.action.NDEF_DISCOVERED" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="application/OLDAPPLICATIONID" />
    </intent-filter>
</activity>

我的手机上安装了新应用程序,但是当我点击 NFC 标签时,它会打开 Play 商店并将我重定向到旧应用程序。

是否可以创建在发现包含其他应用程序 ID 的标签时触发的 NFC 过滤器?

【问题讨论】:

    标签: android nfc intentfilter ndef android-applicationrecord


    【解决方案1】:

    不,不可能启动您的新应用程序与该标签。 Android 应用程序记录 (AAR) 的整个想法就是防止这种情况发生(参见 NFC Basics):

    [... an AAR] 提供了更强的确定性,即您的应用程序在扫描 NFC 标签时启动。 [...] 如果您想防止其他应用程序过滤相同的意图并可能处理您已部署的特定标签,AAR 会很有用。

    因此,如果您想使用 NFC 标签启动您的应用,唯一的选择是替换标签上的数据(或整个标签,以防写锁定)。

    但是,如果您只想在(新)应用程序已经在前台打开时读取标签,您可以使用前台调度系统或阅读器模式来覆盖该行为并强制 Android 将标签发现事件调度到您的(新)应用程序。见Using the Foreground Dispatch System

    【讨论】:

      猜你喜欢
      • 2013-02-13
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多