标签: ndef

Android应用程序模仿物理RFID卡

Android应用程序是否可以将先前存储的RFID卡ID发送到NFC读卡器?目的是使用Android设备来访问房间而不是物理RFID卡.在阅读了很多关于NFC/RFID和卡仿真的其他主题之后,我得出结论,目前在Android中无法使用它,但如果适用于这种特殊情况,我仍然感到困惑.应用程序不能简单地在NDEF消息或APDU命令中发送卡ID,或者我只是完全在做梦?

android rfid apdu nfc ndef

23
推荐指数
1
解决办法
9万
查看次数

使用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从Windows Phone 8向Android设备发送字符串

没有任何运气使用谷歌,所以我想我会问.

有没有人有经验/知道如何从Windows Phone 8设备向Android设备发送简单的字符串即"hello"?

到目前为止我们已经能够做到android - > android和android - > windows phone 8但是我们还没有找到如何做到从windows phone 8到android.

有没有人在网上看过指南或知道怎么做这样的事情?

我想的第一步是找出如何使Windows Phone 8上的应用程序实现其附近的Android NFC设备..然后它将弄清楚如何使Android手机上的应用程序接收消息.

提前致谢!

*答案*

好吧所以这里有一些答案/提示

我最终发送NFC消息作为外部类型,因为发送应用程序/ my.mimetype不断给我一个"抱歉你的手机无法记录这种类型的文件"在Windows手机上,即使消息正在通过.

@Override
public NdefMessage createNdefMessage(NfcEvent event) {

    NdefMessage ndefMessage = new NdefMessage(( 
            new NdefRecord[] {createMimeRecord("packageName:externalType",docId.getBytes())}));

    return ndefMessage;
}

public NdefRecord createMimeRecord(String mimeType, byte[] payload) {
    byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII"));
    NdefRecord mimeRecord = new NdefRecord(NdefRecord.TNF_EXTERNAL_TYPE, mimeBytes, new byte[0], payload);
    return mimeRecord;
}
Run Code Online (Sandbox Code Playgroud)

在android中你要做的就是按照SDK示例中的android示例(android-16/17-AndroidBeamDemo)进行解释,这里的解释非常彻底 - http://www.tappednfc.com/wp-content/uploads/TAPPED -NFCDeveloperGuide-Part1.pdf

但不是使用应用程序mimetype使用上面的外部类型,并在您的清单中放置以下而不是在intent过滤器中的mimetype:

                <data
                android:host="ext"
                android:pathPrefix="/cco.drugformulary:externalType"
                android:scheme="vnd.android.nfc" />
Run Code Online (Sandbox Code Playgroud)

关于从Windows手机阅读和发送消息,您可以使用接受的答案人员所做的事情,它应该可以工作但是对于类型放置cco.drugformulary:externalType从上面(当然你的项目名称).

如果您遇到任何问题,请随时问我

windows android nfc windows-phone-8 ndef

13
推荐指数
1
解决办法
4311
查看次数

NFC与NFC工具,创建NDEF应用程序

我试图做我猜想会很简单的事情,但事实证明并非如此.我有一个ACR122 NFC阅读器和一堆Mifare Classic和Mifare Ultralight标签,我想要做的就是从Java应用程序读取和写入每个卡的mime类型和短文本字符串.这是我到目前为止所做的工作:

  • 我可以连接到我的读者并听取标签
  • 我可以检测到阅读器上的标签类型
  • 在Mifare Classic标签上,我可以遍历标签上的所有数据(在从手机编程标签之后)并构建一个ascii字符串,但大多数数据都是"垃圾"数据
  • 我可以确定标签上是否有Application目录.

这是我的代码:

主要:

public static void main(String[] args){
        TerminalFactory factory = TerminalFactory.getDefault();
        List<CardTerminal> terminals;
        try{
            TerminalHandler handler = new TerminalHandler();
            terminals = factory.terminals().list();
            CardTerminal cardTerminal = terminals.get(0);
            AcsTerminal terminal = new AcsTerminal();
            terminal.setCardTerminal(cardTerminal);
            handler.addTerminal(terminal);
            NfcAdapter adapter = new NfcAdapter(handler.getAvailableTerminal(), TerminalMode.INITIATOR);
            adapter.registerTagListener(new CustomNDEFListener());
            adapter.startListening();
            System.in.read();
            adapter.stopListening();
        }
        catch(IOException e){
        }
        catch(CardException e){
            System.out.println("CardException: " + e.getMessage());
        }

}
Run Code Online (Sandbox Code Playgroud)

CustomNDEFListener:

public class CustomNDEFListener extends AbstractCardTool
{
    @Override
    public void doWithReaderWriter(MfClassicReaderWriter readerWriter)
            throws IOException{
        NdefMessageDecoder …
Run Code Online (Sandbox Code Playgroud)

java nfc ndef

10
推荐指数
1
解决办法
2731
查看次数

Android:卡仿真 - 使用PN532 nfc模块读取ndef消息

我有一个LG D320n Android手机,elechouse的PN532 nfc模块和Stollmann的NFCPlayer,我可以正确阅读NFC标签.

我从这里测试了一个样本:https://github.com/grundid/host-card-emulation-sample

它工作正常,当我读取一个Android设备作为标签与另一个Android设备作为阅读器.但我无法通过NFCPlayer将Android设备作为PN532阅读器的标签阅读.我希望读者从Android设备读取NDEF消息作为标签,但NFCPlayer甚至不能识别Android设备.我想我必须在Android方面做一些修改,但我无法弄明白该怎么做.我想我对NFC通信和HCE的工作方式知之甚少,尽管我读过这篇文章:https: //developer.android.com/guide/topics/connectivity/nfc/hce.html

我真的很感激任何可以帮助我理解我在这里缺少什么的指南.

tags android nfc ndef hce

10
推荐指数
1
解决办法
2057
查看次数

Android NDEF记录有效负载上的奇怪字符

我刚刚开始使用Android NFC编码,我已成功读取和编写NIFF数据到mifare经典标签.问题是当app从ndef记录中读取有效负载时,它总是在文本的开头包含字符'*en'.我认为这是语言特征,但如何获得没有该字符的真实短信?

这是截图从标签读取的应用程序,实际文本是"Hello World"

在此输入图像描述 这是要阅读的代码

@Override
public void onNewIntent(Intent intent) {
    Log.i("Foreground dispatch", "Discovered tag with intent: " + intent);
   // mText.setText("Discovered tag NDEF " + ++mCount + " with intent: " + intent);

    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
        Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);

        if (rawMsgs != null) {
            NdefMessage[] msgs = new NdefMessage[rawMsgs.length];

            for (int i = 0; i < rawMsgs.length; i++) {
                msgs[i] = (NdefMessage) rawMsgs[i];
            }

            NdefMessage msg = msgs[0];

            try {
            mText.setText(new String(msg.getRecords()[0].getPayload(), "UTF-8"));
            } catch (Exception e) { …
Run Code Online (Sandbox Code Playgroud)

android nfc ndef

8
推荐指数
1
解决办法
5586
查看次数

NFC中的AAR记录:有效负载在哪里?

根据此答案,并通过测试验证,当您使用Android Beam推送包含AAR记录的NFC消息时,接收设备将启动AAR中指定的应用程序的MAIN/ LAUNCHERactivity.

MAIN/ LAUNCHER Intent不包含NfcAdapter.EXTRA_NDEF_MESSAGES额外的.因此,如果您使用AAR,我们遇到的所有麻烦的数据都会丢失.

有没有办法在这种情况下获取触发应用程序的NFC消息?

如果答案是"否",那么AAR的用例是什么?当接收设备上不存在所需的应用程序(启动Play商店)时,我可以看到它可能会有所帮助,但是一旦安装了应用程序,AAR就会阻止任何将数据从一个设备传送到另一个设备的尝试,这是有点像NFC的背后.

谢谢!

android nfc ndef android-applicationrecord

8
推荐指数
1
解决办法
2827
查看次数

使用ACR122将NDEF消息写入NFC标签

我是NFC新技术的新手,并试图了解它.我有一个ACR122,我正在尝试写一个NDEF记录.

我正在使用VS2012,到目前为止已安装了pcsc-sharp库以及我从某处获得的NDEFLibrary.

我可以连接到ACR122,我可以创建一个NDEF消息然后呢?我如何实际编写我为标签创建的NDEF消息?

我在pcsc-sharp库中看不到任何函数来传递消息来实际写入标记?

有人能指出我正确的方向吗?我承认我是NFC的新手,我还有很多需要学习的东西,但我正在阅读很多东西并慢慢地到达那里.

c# nfc ndef

8
推荐指数
0
解决办法
2040
查看次数

可以在iOS中读取受保护的NFC标签吗?

iOS 11 Apple现在支持为iPhone 7/7 Plus及更高版本阅读NFC标签的消息.

我找到了一些演示,但不知道是否有办法阅读受保护的NFC标签.例如,旅行证件中嵌入了NFC标签,可以防止不安全的阅读.我在Apple文档中搜索了NFC NDEF协议,但没有任何功能需要NFC标签的质询/握手.有没有办法与这些类型的NFC标签进行交互?

nfc ios ndef contactless-smartcard swift

8
推荐指数
1
解决办法
1593
查看次数

Xcode Testflight 验证错误 ITMS-90778 NDEF 被禁止

我正在尝试将我的应用程序上传到使用CoreNFC (NDEF) 的 TestFlight

不幸的是,我在(SDK 版本 13 和 13.1)中的 Testflight Validate 部分收到了错误消息。

我已经试过了:Xcode 11 beta can't upload app to TestFlight

但它会失去 NDEF 功能:https : //stackoverflow.com/a/58128365/5588637

错误消息:核心 nfc 框架的权利无效 sdk 版本 13.0 和 min OS 版本 13.0 与权利 'com. 苹果开发者NFC。Readersession 格式,因为 NDEF 被禁止
在此处输入图片说明

xcode nfc ios ndef swift

8
推荐指数
3
解决办法
4008
查看次数