gpt4 book ai didi

java - 使用 NFC 标签打开应用程序时无法获取 NDEF_DISCOVERED 操作

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:12 29 4
gpt4 key购买 nike

因此,我编写了一个 NFC 标签来启动我当前正在开发的应用程序。我使用以下服务来做到这一点: https://play.google.com/store/apps/details?id=com.wakdev.wdnfc&hl=en

我想要做的是每当 NFC 标签打开我的应用程序时从一项 Activity 切换到另一项 Activity 。

在我的 AndroidManifest.xml 的 list 标签下,我有:

<uses-permission android:name="android.permission.NFC" />
<uses-sdk android:minSdkVersion="10"/>
<uses-feature android:name="android.hardware.nfc" android:required="true" />

我的 MainActivity 看起来像这样:

<activity android:name=".MainActivity">
<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:mimeType="text/plain" />
</intent-filter>
</activity>

由于NFC标签首先打开MainActivity,所以我想看看它是否被NFC打开。如果有,请切换到另一个 Activity 。

问题是 getIntent().getAction()总是返回android.intent.action.MAIN当我期待android.nfc.action.NDEF_DISCOVERED

目前我正在 onResume() 下执行此检查(基本上是调试)方法如下:

@Override
protected void onResume() {
super.onResume();
System.out.println(getIntent().getAction());
}

我尝试在 onCreate() 下执行此检查和onStart()方法。全部返回android.intent.action.MAIN结果正如我所料android.nfc.action.NDEF_DISCOVERED .

我是 Android 开发新手,我只是想在一个小型原型(prototype)中实现此功能。如果你们能帮助我,我将不胜感激!

编辑:我成功了!我对这个问题进行了很多研究,我相信我的 NFC 标签需要一些文本/纯文本类型的额外数据(我之前也没有指定这个 mimeType,所以看起来它是强制性的)。我还在尝试调试应用程序时将 NDEF_DISCOVERED 放在 LAUNCHER 类别下,然后将其更改回 DEFAULT。我终于得到了我想要的结果!

最佳答案

getIntent() 返回用于创建 Activity 的 Intent。在您的例子中,这是主屏幕启动器Intent

当您扫描 NFC 标签时,新的 Intent 将传递给该 Activity 。该 Intent 会传递给您可以重写的 onNewIntent() 方法。

根据您的 Activity 的使用方式,您可能需要处理这两种情况:

  • 用户通过扫描 NFC 标签启动您的应用,因此您的 Activity 是使用 NDEF Intent 创建的
  • 用户在扫描 NFC 标签之前通过其他方式启动您的应用,因此您的 Activity 是使用其他一些 Intent 创建的,并且您在 onNewIntent() 中获取 NDEF Intent

关于java - 使用 NFC 标签打开应用程序时无法获取 NDEF_DISCOVERED 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60658085/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com