Android Ndef Message解析
@concept:NDEF NFC Form论坛定义的NFC数据交换通用数据格式。
如上所示:一条NDEF消息由诸多Record记录组成,Record又由Header和Payload组成,Header定义了Payload的ID 长度与ID,携带数据的格式与格式长度,携带的数据的字节数。
Header的具体结构如下图:
第一个字节是状态字节(1byte=8bit),用于指定Record有无ID,该Record是首记录还是尾记录,是长记录还是短记录,以及关键的Record的类型。
Record的类型可以有一下8种,Type指定的是载荷Payload的类型。
常见的Payload类型有:Text、URI、MIME类型,TNF_WELL_KNOWN类型的Record类型,有以下几种Payload类型。
本文重点关注RTD_TEXT类型的解析,Payload类型为RTD_TEXT的Payload结构如下。
第一个字节(1byte)是状态标志位,位定如下:
这个状态字节0-5位定义了语言码的长度,最高位MSB定义文本的编码格式。注意语言码和文本编码是两个概念,前面定义了语言码长度,紧接着Payload第二个字节开始就定义了对应长度的语言码字节。语言码之后的字节就是文本的字节(实际的内容),文本的编码方式就是MSB位定义的编码格式。
相关解析代码如下所示:0200是八级制对应十六进制0x80,最后解析出来的字符串放在payloadStr字符变量中。
大致流程为:取Record状态字节,根据文本编码方式以及语言码长度取出语言码,根据文本的编码方式将文本内容对应的字节按照相应编码格式转换为字符串。
转载于:https://www.cnblogs.com/geekj/p/10755912.html
Android Ndef Message解析相关推荐
- Android 基于Message的进程间通信 Messenger完全解析
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47017485: 本文出自:[张鸿洋的博客] 一.概述 说到Android进程间 ...
- Android源码解析--AlertDialog及AlertDialog.Builder
昨天晚上弄到很晚,简单的看了下Dialog的源码,说要分析下建造者模式,在dialog里面的应用其实是在AlertDialog中. 按照惯例,先看类说明: [java] view plaincopy ...
- Android 手机卫士--解析json与消息机制发送不同类型消息
本文地址:http://www.cnblogs.com/wuyudong/p/5900800.html,转载请注明源地址. 1.解析json数据 解析json的代码很简单 JSONObject jso ...
- Android SVG图片解析Demo
SVG SVG是一种图像文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它是基于XML(Extensible Markup Language),由Wo ...
- android输入法架构解析
android输入法架构解析 简介: 前阵子接手维护了一个密码键盘的项目,之前还没有接触过android输入法这块的知识点,所以在熟悉项目的同时将android系统输入法实现框架整理了一遍,记录在此. ...
- Android动态壁纸解析
转载自 Yalin Jin的文章:http://www.kinglloy.com/ MENU Android动态壁纸解析 24 JULY 2017 阅读之前 建议下载使用Style动态壁纸应用 文章后 ...
- Android Binder 全解析(1) -- 概述
摘要 如果各位玩过<炉石传说>,那么可能对法师的职业卡「不稳定的传送门」很有印象,特别是没有欧洲玩家,经常能够拿到其他职业的强力单卡.Android 也提供了传送门,让我们可以像使用本地方 ...
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...
- Android源码解析(一)动画篇-- Animator属性动画系统
Android源码解析-动画篇 Android源码解析(一)动画篇-- Animator属性动画系统 Android源码解析(二)动画篇-- ObjectAnimator Android在3.0版本中 ...
最新文章
- Tensorflow C++ API调用Keras模型实现RGB图像语义分割
- Linux 下 *.tar.gz 文件解压缩命令
- 使用Tkinter的Label组件写一个广告板招租
- 黑马Python + 人工智能学习笔记
- VTK:绘制BarChart条形图用法实战
- cpp判断输入为数字_猜数字小程序带你C语言入门
- 为什么要做漏洞扫描呢?
- DeFi稳定币协议Lien Protocol通过zkRollup测试网迁移至以太坊二层
- c语言作业统计字符,C语言统计字符数(示例代码)
- windows远程Linux
- linux服务器证书安装教程,linux服务器使用certbot免费安装ssl证书
- 是否允许此网站打开你计算机上的程序
- trunk端口_超全!华为交换机端口vlan详解~
- 艺术招生考试/艺术职称考试/才艺比赛/艺术特长考试/舞蹈比赛等-评委现场打分公开展示系统的定制
- Eucalyptus常用命令示例
- 基于AT89C52单片机秒表设计
- mac怎么设置桌面提醒
- 【第三方互联】14、Github授权第三方登录
- Mat 无法解析dump文件:Dominator tree not available. Open the Dominator Tree or delete indices and parse aga
- 一次精彩的皮卡车降噪试验过程