Android NFC NFA读取

      弄到一个Nfca类型的不知道怎么读。我们以前用的是MifareUltralight类型,那个简单直接拿到readPage,读取扇区就行。好了,从头开始百度 android nfca 标签怎么读取。ok有一堆,几乎都没有用,别问我怎么知道的。我这个菜鸡弄这个弄了整整两天,然而大部分时间都是混水。开始了贴代码,

 @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        //当该Activity接收到NFC标签时,运行该方法
        //调用工具方法,读取NFC数据
        //获取到Tag标签对象
        mTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        String[] techList = mTag.getTechList();
        Log.e("标签支持的tachnology类型:", "");
        System.out.println("标签支持的tachnology类型:");
        for (String tech : techList) {
            Log.e("标签支持的tachnology类型:", tech);
            stringBuffer.append(tech + ",");
        }
        stringBuffer.append("\n");

      /*  try {
            ndef.connect();
            boolean connected = ndef.isConnected();
            byte[] id = mTag.getId();
            for (int i = 0; i < id.length; i++) {
                Log.e("ididid","---"+id[i]);
            }
            if(connected){
                Parcelable[] rawMsgs = intent.getParcelableArrayExtra(
                        NfcAdapter.EXTRA_NDEF_MESSAGES);

              *//*  if(ndefMessage!=null){
                    NdefRecord[] records = ndefMessage.getRecords();
                    Toast.makeText(this, "records"+ndefMessage, Toast.LENGTH_SHORT).show();
                }*//*


            }
        } catch (IOException e) {
            e.printStackTrace();
        }*/


        NfcA nfcA = NfcA.get(mTag);
        try {
            nfcA.connect();
        } catch (IOException e) {
            e.printStackTrace();
        }


        boolean connected = nfcA.isConnected();
        if (connected) {
            Toast.makeText(this, "连接成功", Toast.LENGTH_SHORT).show();
/*
            byte[] DATA_READ = new byte[]{
                    (byte) 0X11,(byte)0x00, (byte) 0xef
            };*/
      //NTAG216的芯片
            byte[] DATA_READ = {
                    (byte) 0x30,
                    (byte) 8 & 0x0ff,//0x05
            };


            try {
                data_res = nfcA.transceive(DATA_READ);
            } catch (IOException e) {
                e.printStackTrace();
                Toast.makeText(this, e.getMessage().toString(), Toast.LENGTH_SHORT).show();
            }

            stringBuffer.append("TagId:");
            byte[] mTagId = mTag.getId();
            for (int i = 0; i < mTagId.length; i++) {
                Log.e("TagId", mTagId[i] + "");
                stringBuffer.append(mTagId[i]);
            }
            stringBuffer.append("\n");

            stringBuffer.append("atqa1:");
            byte[] atqa1 = nfcA.getAtqa();
            for (int i = 0; i < atqa1.length; i++) {
                Log.e("atqa1", atqa1[i] + "");
                stringBuffer.append(atqa1[i] + ",");
            }
            stringBuffer.append("\n");


            short sak = nfcA.getSak();
            stringBuffer.append("sak:" + sak + "\n");

            textView.setText(stringBuffer.toString() + nfcA.getMaxTransceiveLength());

            if (data_res == null) {
                return;
            }
            if (data_res.length > 0) {
                Toast.makeText(this, "读取成功", Toast.LENGTH_SHORT).show();
                for (int i = 0; i < data_res.length; i++) {
                    Log.e("dataRes" + i + "------", data_res[i] + "");

                }
                String s = new String(data_res, Charset.forName("utf-8"));
                Log.e("dataRes", s);
            }
        } else
            Toast.makeText(this, "连接失败", Toast.LENGTH_SHORT).show();

我也开始也不明白,nfca的 transceive()这个方法,之所以这么少是因为的,这个nfc对应的厂家有不同的命令我之前还

问做硬件的这个命令是什么,他也不知道,然后我们有一份文档找到了这个,下面这个读取十六字节的命令,后来这个也是不行

,还爆了(Taw lost)因为我们的nfc不是这个类型的。然后在网上看到一片文章,用了下他的命令就成功了!!另外以我的理解

0x30 是读的命令,0x08应该是读取到那个扇区。好了,祝你成功。

大佬文章:https://blog.csdn.net/shjn2004/article/details/52287927

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: sak格式转换工具是一款用于将文件从sak格式转换为其他格式的工具。使用sak格式转换工具可以方便地将sak格式的文件转换为常见的文本、图像、视频或其他可用格式,以满足不同需求。 首先,我们需要下载并安装sak格式转换工具。可以在互联网上搜索并找到一个可靠的下载来源,然后按照指示进行下载和安装。 安装完成后,我们可以打开sak格式转换工具的界面。界面通常会提供一个用户友好的交互界面,方便用户使用。 接下来,我们需要选择要进行转换的sak格式文件。在工具界面上,可以通过文件浏览器或拖放文件的方式选择要转换的文件。 选择文件后,我们需要指定要转换为的目标格式。常见的目标格式可以是txt、doc、pdf等文本格式,或者是jpg、png等图像格式,还可以是avi、mp4等视频格式。在界面上,通常会有一个下拉菜单或选项框,提供可选的目标格式选项。 确定目标格式后,我们可以点击“转换”或类似的按钮,开始进行文件转换。转换的速度会根据文件大小和计算机性能而有所不同,稍等片刻直到转换完成。 转换完成后,我们可以通过界面上提供的保存选项,将转换后的文件保存到我们指定的位置。 最后,我们可以通过打开目标保存文件来确认转换结果是否满足我们的需求。 需要注意的是,sak格式转换工具可能会有不同的版本和界面操作方式,上述步骤仅为一般情况,具体使用方法可以参考工具提供的说明文档或官方网站上的指引。 ### 回答2: Sak格式转换工具是一种用于转换文件格式的工具。以下是使用Sak格式转换工具的简单步骤: 1. 下载并安装Sak格式转换工具。你可以在官方网站或其他可信的软件下载网站上找到它。 2. 打开Sak格式转换工具。通常,它会在你的计算机上创建一个桌面图标或在开始菜单中列出。 3. 点击“选择文件”(或类似选项),浏览并选择你要转换的Sak格式文件。在弹出的文件浏览器中,找到文件并单击“打开”。 4. 在工具界面上选择你想要转换的目标文件格式。通常可以选择多种文件格式,如PDF、Word文档、文本文件等。 5. 点击“转换”(或类似选项),开始执行文件格式转换操作。在此过程中,工具会将Sak格式文件转换为你选择的目标文件格式。 6. 一旦转换完成,工具会提示你保存转换后的文件。选择一个你喜欢的位置并为转换后的文件命名。 7. 点击“保存”(或类似选项),将转换后的文件保存到你指定的位置。 至此,你已成功使用Sak格式转换工具将Sak格式文件转换为其他目标文件格式。请记住,具体步骤可能会因工具的版本和设计而有所不同,所以最好是根据工具的使用说明或帮助文档来操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值