gpt4 book ai didi

Android NFC Intents 没有开始我的 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:35 25 4
gpt4 key购买 nike

我正在尝试编写一个简单的应用程序来与 NFC 标签进行交互,但我似乎无法让我的手机执行任何操作,只能触发默认的 NFC 标签应用程序。我真的只是希望能够拦截我扫描的任何标签,确定它上面是否有一些数据,并采取相应的行动。

现在我的 list 文件看起来像

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

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".NfcActivity"
android:label="@string/app_name">
<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"/>
</intent-filter>
</activity>
</application>

但是,当扫描 NFC 标签时,我从未看到 Activity 开始。我在这里错过了什么吗?我尝试将 intent 过滤器放在 BroadcastReceiver 中,但也没有成功...

最佳答案

您无法通过扫描的所有 NFC 标签启动您的应用。 Android 将根据 Intent 过滤器的具体程度来确定最合适的应用程序。但是,如果您的应用程序在前台运行,您可以使用 NFC foreground dispatch捕捉所有 NFC Intent 。

onCreate()中添加:

mAdapter = NfcAdapter.getDefaultAdapter(this);
PendingIntent pendingIntent = PendingIntent.getActivity(
this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);

onResume() 中添加:

mAdapter.enableForegroundDispatch(this, pendingIntent, null, null);

onPause()中添加:

mAdapter.disableForegroundDispatch(this);

onNewIntent 中,您可以像这样获取 NFC 标签:

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

关于Android NFC Intents 没有开始我的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074812/

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