我有一个读取NFC标签的xamarin应用程序。当应用程序打开时,它可以正常工作,但是如果应用程序在后台或关闭,它就无法从标签中读取数据。
我的意图过滤器:
[IntentFilter(
new[] {"android.nfc.action.NDEF_DISCOVERED", "android.intent.action.VIEW", "android.intent.action.MAIN"},
Categories =
new[]
{
"android.intent.category.DEFAULT", "android.intent.category.BROWSABLE",
"android.intent.category.LAUNCHER"
},
DataScheme = "http", DataHost = "app.myDomain.com")]
在我的帐篷里,我的意图。当从应用程序外部扫描数据时,数据总是返回为空。有没有想过我的问题可能在哪里?
简历:
nfcAdapter.EnableForegroundDispatch(this, nfcPendingIntent, nfcIntentFiltersArray, null);
温恩特:
protected override void OnNewIntent(Intent intent)
{
if (AndroidNFCHelper.isNfcIntent(intent))
{
DisplayMessage("And it is an NFC intent");
}
var tag = intent.GetParcelableExtra(NfcAdapter.ExtraTag) as Tag;
if (tag == null)
{
Debug.WriteLine("tag is null");
return;
}
//rest of OnNewIntent code...
}
有趣的是,在应用程序外扫描时,AndroidNFCHelper。isNfcIntent的结果是错误的。当同一个NFC标签在应用程序中被扫描时,它返回为真。继续,标记最终为null,只需点击return语句。在应用程序中扫描时,标签不为空并继续。
PrepareForegroundNFCHandling-在OnCreate()中被调用:
private void PrepareForegroundNFCHandling()
{
var tagDetected = new IntentFilter(NfcAdapter.ActionTagDiscovered);
var ndefDetected = new IntentFilter(NfcAdapter.ActionNdefDiscovered);
nfcIntentFiltersArray = new[] { ndefDetected, tagDetected};
var intent = new Intent(this, GetType()).AddFlags(ActivityFlags.SingleTop | ActivityFlags.BroughtToFront);
nfcPendingIntent = PendingIntent.GetActivity(this, 0, intent, 0);
nfcAdapter = NfcAdapter.GetDefaultAdapter(Application.ApplicationContext);
}
NDEF_仅对标记的NDEF消息中第一条记录的类型进行筛选。
由于您的应用程序是以意图操作MAIN(Android NFCHelper.isNfcIntent(意图)
为false)启动的,并且在意图附加项中没有任何Tag
对象(意图。GetParcelableExtra(NfcAdapter. ExtraTag)
为null),您的NDEF消息除了URL之外可能还包含一个Android应用程序记录。
即使NDEF消息(读作“first record”)与您的意向过滤器不匹配,您的应用程序也会启动的原因是,如果没有匹配的NFC意向过滤器,AAR将退回到启动应用程序,就像单击了启动器图标一样(即action MAIN,category launcher)。
所以你的NDEF信息可能看起来像这样:
+----------------------------------------------+ | SOME RECORD | +----------------------------------------------+ | WKT: URI | http://app.mydomain.com/p/9 | +----------------------------------------------+ | EXTERNAL: android.com:pkg | com.mydomain.app | +----------------------------------------------+
或者简单地说:
+----------------------------------------------+ | EXTERNAL: android.com:pkg | com.mydomain.app | +----------------------------------------------+ | WKT: URI | http://app.mydomain.com/p/9 | +----------------------------------------------+
在第一种情况下,您需要修改意图过滤器以匹配您的记录“SOME record”。在后一种情况下,需要修改意图过滤器以匹配外部类型“android:com:pkg”:
DataScheme = "vnd.android.nfc", DataHost = "ext", DataPathPrefix = "/android.com:pkg"
或者,更好的是,将URL移动到NDEF消息的开头,将AAR移动到NDEF消息的结尾:
+----------------------------------------------+ | WKT: URI | http://app.mydomain.com/p/9 | +----------------------------------------------+ | EXTERNAL: android.com:pkg | com.mydomain.app | +----------------------------------------------+
大家好,我正在开发android应用程序,需要扫描设备的nfc标签。我对nfc一无所知,在阅读了大量教程后,我找到了一些方法来检查手机中是否启用了nfc,但我不知道如何读取nfc标签。 这是我的promise 我的帐篷
我已经制作了一个在NFC TAG上读写的应用程序。但是,当我在打开应用程序后扫描空 NFC 标签时,它没有像我预期的那样响应,因为我的应用程序吐司消息“标签为空”。但是,当我关闭我的应用程序时,我会收到移动传送带消息。 基本上,我需要如下帮助: 从我的应用程序中检测空NFC标签 在该空标记中写入服务器信息 然后从该标签中读取该信息 我在这里包含了我的代码。 Android清单.xml activi
我有一个小项目要将数据写入Ntag 213、215和216。 我成功地使用MifareUltraLight方法写入数据。问题是当我使用 NfcTools 扫描时,数据格式与我预期的不同。 这是我期望的格式。 这是我得到的格式。 我希望当Ntag扫描时,如果没有安装应用程序,它会打开浏览器。 我使用Mi的方法,因为N标签将受密码保护。我尝试了两种不同的方式来写入数据。 > 我使用命令N瘤手动处理写入
我正在尝试使用nfc android库读取ISO15693 RFID标签: 有关该标签的更多信息如下:http://img42.com/gw07d+
我在这里找到了一些关于使用Android阅读NFC标签的最近帖子。我得到的结论是,执行NFC读取动作会触发一个分离的意图。 那么第一个问题:在我的清单中列出意图过滤器是否必要? 我认为这是没有必要的,因为我不想推出我的应用程序通过NFC标签事件,对吗? 第二个问题:我如何保持我的NFC阅读逻辑/功能与我的app/活动相关? 例如,在iOS中,在VC中需要时有一个简单的NFC会话。
我是springboot的新手,我正在尝试从application.properties文件的位置(src/main/resources)读取属性值。但它总是返回NULL。我也需要帮助。附加类和属性文件。请注意:我试过“https://www.baeldung.com/properties-with-spring”如何访问Spring Boot中application.properties文件中定