标签: nfc

16
推荐指数
1
解决办法
2万
查看次数

NFC标准(NFC论坛,ISO/IEC,ECMA

我经常被问及标准,NFC是基于.我在下面的文字中总结了我的知识.我希望它可以成为这些问题的答案.请随意通过发表评论和回复来纠正它 - 我会将其包含在我的文本中.

由于NFC基于RFID,因此通常将其视为RFID扩展,其形式或子集.这是正确的,因为NFC中采用了RFID的许多现有标准.物理层的NFC基础标准是NFCIP-1(ISO 18092或ECMA 340) - 它标准化了两个NFC设备之间的通信.NFCIP-1中使用的RF层直接继承自较旧的ISO标准ISO 14443(接近非接触式卡),更具体地说是该标准中定义的A型协议,以及日本JIS 6319-4(Sony FeliCa所基于的,也是由NFC Forum Type 3 Tag标准使用).其结果是NFC设备(读取器/写入器模式)与ISO 14443智能卡兼容.

NFCIP-1新定义了活动模式.在这种模式中,两个通信NFC设备必须具有用于生成RF场的自己的电源(即,两个移动设备或移动设备和NFC读取器),并且两者都可以是通信的发起者.

第二个主要标准是NFCIP-2(ISO 21481或ECMA 352),它定义了在13.56Mhz相同频率下工作的不同非接触技术之间的选择机制.它旨在由支持ISO 18092,ISO 14443通信的移动设备使用,但它们也兼容其他非接触式标准,如ISO 15693.

此外,NFC论坛还发布了其他几个标准,如NDEF(数据格式)RTD(用于各种目的的记录类型),以及NFC切换的建议,特别是NFC用于蓝牙配对的建议.Wi-Fi联盟将NFC作为配置家庭网络的四种方式之一.

NFC论坛还定义了在对等通信中在NFCIP-1之上使用的LLCP协议.在LLCP顶部的对等通信中使用的另一种协议是SNEP(简单NDEF交换协议),它允许交换类似于标签操作规范的NDEF消息.

NFC设备还可以在卡仿真模式下工作,这使他们可以假装它们是被动非接触式智能卡.这可能是最重要的模式,因为它允许移动电话充当非接触式支付卡.NFC控制器与卡仿真模式中使用的安全元件(用于存储安全应用和敏感数据的元件)互连有几个标准 - SWP(尚未标准 - 参见ETSI TS 102 613 V.9.1.0)和NFC- WI(ECMA-373).

我不是100%肯定上面的文字正确性,所以我的问题是 - 它是否正确?你有什么要补充的吗?

BR STeN


添加了NFC家伙的评论

iso rfid nfc ecma

16
推荐指数
1
解决办法
9197
查看次数

使用Windows Phone 8 NFC读取Mifare标签?

Windows Phone 8 NFC是否支持基于Mifare Ultralight/Classic的标签?我使用此代码访问诺基亚Lumia 920上的NFC设备(代码示例取自NDEF标签阅读器 - NFC NDEF标签阅读器)

public partial class MainPage : PhoneApplicationPage
{
    public MainPage()
    {
        InitializeComponent();
        ProximityDevice device = ProximityDevice.GetDefault();
        device.DeviceArrived += DeviceArrived;
        device.DeviceDeparted += DeviceDeparted;
        device.SubscribeForMessage("NDEF", MessageReceived);
    }

    private void DeviceArrived(ProximityDevice sender)
    {
        // this event occurs when I am tapping any of my tags (tried 5 different Mifare Ultralight/Classic)
    }

    private void DeviceDeparted(ProximityDevice sender)
    {
        // this event occurs when I am moving away any tag
    }

    private void MessageReceived(ProximityDevice sender, ProximityMessage …
Run Code Online (Sandbox Code Playgroud)

.net c# nfc mifare windows-phone-8

15
推荐指数
2
解决办法
2万
查看次数

使用Android中的application/vnd.wfa.wsc创建NDEF WiFi记录

从Android 5.0.0开始,您可以长时间点击WiFi连接并将该连接写入标签("写入NFC标签").您可以在此处找到该操作的源:WriteWifiConfigToNfcDialog.java.采用WiFi连接并创建NDEF有效负载的相关线路似乎在这里:

String wpsNfcConfigurationToken = mWifiManager.getWpsNfcConfigurationToken(mAccessPoint.networkId);

mWifiManager是一个实例WifiManager,但getWpsNfcConfigurationToken不是API的一部分.通过跟踪此方法,我们可以在此处找到它的提交:添加对NFC WSC令牌创建的调用,遗憾的是没有帮助.这是我的调查已经用完的地方.编辑:我发现了以下调用堆栈:

WifiServiceImpl.java 电话 mWifiStateMachine.syncGetWpsNfcConfigurationToken(netId);

WifiStateMachine.java 电话 mWifiNative.getNfcWpsConfigurationToken(netId);

WifiNative.java 终于有了方法

public String getNfcWpsConfigurationToken(int netId) { return doStringCommand("WPS_NFC_CONFIG_TOKEN WPS " + netId); }

然后调用

String result = doStringCommandNative(mInterfacePrefix + command);

在哪里doStringCommandNative进行系统调用(无法在任何地方找到此代码).

现在调查结束的地方.

希望有人能介入,并告诉我,创建一个方法NdefRecord是类型的application/vnd.wfa.wsc给定的SSID,密码,加密/身份验证类型.

我当然检查了application/vnd.wfa.wsc由Android创建的实际记录的字节,但手动重新创建这个字节的过程似乎可能非常不可靠,而且非常繁琐.

java android nfc wifi ndef

15
推荐指数
2
解决办法
1867
查看次数

NFC即时应用

我正在尝试通过NFC打开即时应用程序.

我的AndroidManifest.xml中有类似下面的内容

            <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="https" />
            <data android:scheme="http" />
            <data android:host="example-refresh.herokuapp.com" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

从链接转到https://example-refresh.herokuapp.com(显然是示例链接)时,单击即时应用正确加载.当从nfc标签打开该链接时,浏览器就会加载.我已经尝试过让nfc打开一个AAR(https://developer.android.com/guide/topics/connectivity/nfc/nfc.html#aar)这会导致当应用程序没有打开游戏商店链接时安装时,安装和应用程序正确打开nfc.如果我在nfc上有其他东西,所以它显示了消歧的选项,那么我可以为浏览器选项选择即时应用程序,但我希望它默认为即时应用程序.

是否有一些我缺少一个nfc标签来加载即时应用程序?我也试过使用分支,但没有运气.

android nfc deep-linking branch.io android-instant-apps

15
推荐指数
1
解决办法
818
查看次数

你如何在Android上阅读NFC标签的唯一ID?

Tag myTag = (Tag) intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Log.i("tag ID", myTag.getId().toString());
Run Code Online (Sandbox Code Playgroud)

这给了我一个像"[B @ 40521c40"这样的ID,但这个ID会改变每次读取.

任何帮助将不胜感激.

谢谢.

android nfc

14
推荐指数
2
解决办法
2万
查看次数

Nexus 7支持哪些NFC标签?(2012)

我前几天在朋友设备上尝试过Ultralight C,但它无法正常工作.我提出这些问题是因为我知道Mifare Classic标签不适用于Blackberry,我试图找到适用于大多数设备的标签.

我还没有尝试过Ultralight标签.

任何人在此问题上的任何信息都会有所帮助.

android nfc nexus-7

14
推荐指数
2
解决办法
2万
查看次数

从NFC标签读取数据(IsoDep)

我是Android NFC API的新手.

目前,我有一个NFC标签,我正在制作一个Android应用程序来从中读取数据.当我的手机足够接近NFC标签时,我的简单应用就会启动.但我不知道如何读取NFC标签内的数据.该标签使用IsoDep技术.

我目前的代码:

@Override
protected void onResume (){
    super.onResume();

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

    IsoDep isoDep = IsoDep.get(tag);

    // How to read data from IsoDep instance?
Run Code Online (Sandbox Code Playgroud)

我在互联网上搜索,我注意到人们正在发送命令以IsoDep获取NFC标签的响应,我想从响应中,我们可以解析标签中的数据,我看到人们这样做:

 //What is the 'command' ? How to define the command?
 //e.g.:
 byte command = (byte) 0x6A
 isoDep.transceive(command)
Run Code Online (Sandbox Code Playgroud)

但是,这个命令只是一个byte新手,很难理解发生了什么.我不知道如何定义读取数据的命令?有人可以向我解释一下吗?或者是否有我可以了解该命令的文件?

一般来说,我需要一些关于如何定义命令以及如何从响应中解析数据的指导,我想读取存储在Tag中的数据并在UI元素中以String格式显示数据(例如TextView).

*和***

我对这些配置没有问题(例如AnroidManifest.xml),请不要指导我如何配置:)

android nfc android-intent

14
推荐指数
1
解决办法
2万
查看次数

无法声明USB接口(设备或资源繁忙)

我想在Ubuntu 14中使用我的ACR122U非接触式智能卡读卡器.所以我安装了我需要的包和驱动程序.

最后,当我想使用阅读器时,我收到以下错误:

rc@rc-System-Product-Name:~/Desktop/itsme$ sudo nfc-list
[sudo] password for rc: 
nfc-list uses libnfc 1.7.0
error   libnfc.driver.acr122_usb    Unable to claim USB interface (Device or resource busy)
nfc-list: ERROR: Unable to open NFC device: acr122_usb:001:020
rc@rc-System-Product-Name:~/Desktop/itsme$ 
rc@rc-System-Product-Name:~/Desktop/itsme$ sudo mfoc -O output.txt
error   libnfc.driver.acr122_usb    Unable to claim USB interface (Device or resource busy)
No NFC device found.
rc@rc-System-Product-Name:~/Desktop/itsme$ 
Run Code Online (Sandbox Code Playgroud)

我的读者似乎正在使用内核工具.我搜索了很多.有很多人已经有同样的问题,但我找不到他们的答案.

有没有人知道如何解决这个问题?(通过回收设备,例如)

usb ubuntu nfc smartcard-reader acr122

14
推荐指数
2
解决办法
2万
查看次数

未设置为默认值时,请将我的应用程序用于NFC支付

嗨,我正在研究用于NFC支付的Android应用程序.

Android设置中有一个选项可以使用打开的应用程序而不是默认应用程序.例如,当我将默认应用程序设置为Android Pay并且在付款之前打开我的应用程序时 - 我想使用我的应用程序进行付款而不是默认应用程序.见图像波纹管.

在此输入图像描述

我测试了它,但遗憾的是我用Android Pay而不是我在前台运行的应用程序付款.

我没有在文档中找到任何单词,如果我必须添加一些东西来清单,注册一些东西等.?

serviceintent filtermeta data我的清单,并当应用程序被设置为默认的付款,这是正常工作:

<service
        android:name="com.example.MyWalletHceService"
        android:exported="true"
        android:permission="android.permission.BIND_NFC_SERVICE">
        <intent-filter>
            <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
        </intent-filter>

        <meta-data
            android:name="android.nfc.cardemulation.host_apdu_service"
            android:resource="@xml/apduservice"/>
    </service>
Run Code Online (Sandbox Code Playgroud)

添加apduservice xml内容:

<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
android:apduServiceBanner="@drawable/ic_logo_nfc_system"
               android:description="@string/nfc_service_title"
               android:requireDeviceUnlock="false">

<aid-group
    android:category="payment"
    android:description="@string/nfc_aid_desc">
    <!-- Following is a PPSE AID. You must always include this AID in order for payments to
         work-->
    <aid-filter android:name="@string/aid_number"/>
    <!-- Following AID list is specific to the application requirements.
       If your application supports the type of card that these AID …
Run Code Online (Sandbox Code Playgroud)

android nfc android-pay

14
推荐指数
1
解决办法
1296
查看次数