您可能感兴趣的话题:

Android

核心提示:本教程为大家介绍android开发中NFC实例。

对于Android 4.0 SDK中提供的Beam例子,对于NFC开发来说的确是一个不错的模板。对于了解NFC的NDEF消息处理过程不妨看下面的代码。

public class Beam extends Activity implements CreateNdefMessageCallback,

OnNdefPushCompleteCallback {

NfcAdapter mNfcAdapter;

TextView mInfoText;

private static final int MESSAGE_SENT = 1;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mInfoText = (TextView) findViewById(R.id.textView);

mNfcAdapter = NfcAdapter.getDefaultAdapter(this); //实例化NFC设备

if (mNfcAdapter == null) {

mInfoText = (TextView) findViewById(R.id.textView);

mInfoText.setText("NFC is not available on this device.");

}

mNfcAdapter.setNdefPushMessageCallback(this, this); //注册NDEF回调消息

mNfcAdapter.setOnNdefPushCompleteCallback(this, this);

}

@Override

public NdefMessage createNdefMessage(NfcEvent event) {

Time time = new Time();

time.setToNow();

String text = ("Beam me up!\n\n" +

"Beam Time: " + time.format("%H:%M:%S"));

NdefMessage msg = new NdefMessage(

new NdefRecord[] { createMimeRecord(

"application/com.example.android.beam", text.getBytes())

});

return msg;

}

@Override

public void onNdefPushComplete(NfcEvent arg0) {

// A handler is needed to send messages to the activity when this

// callback occurs, because it happens from a binder thread

mHandler.obtainMessage(MESSAGE_SENT).sendToTarget();

}

private final Handler mHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

switch (msg.what) {

case MESSAGE_SENT:

Toast.makeText(getApplicationContext(), "Message sent!", Toast.LENGTH_LONG).show();

break;

}

}

};

@Override

public void onResume() {

super.onResume();

if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {

processIntent(getIntent());

}

}

@Override

public void onNewIntent(Intent intent) {

// onResume gets called after this to handle the intent

setIntent(intent);

}

/**

* Parses the NDEF Message from the intent and prints to the TextView

*/

void processIntent(Intent intent) {

Parcelable[] rawMsgs = intent.getParcelableArrayExtra(

NfcAdapter.EXTRA_NDEF_MESSAGES);

// only one message sent during the beam

NdefMessage msg = (NdefMessage) rawMsgs[0];

// record 0 contains the MIME type, record 1 is the AAR, if present

mInfoText.setText(new String(msg.getRecords()[0].getPayload()));

}

/**

* Creates a custom MIME type encapsulated in an NDEF record

*

* @param mimeType

*/

public NdefRecord createMimeRecord(String mimeType, byte[] payload) {

byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII"));

NdefRecord mimeRecord = new NdefRecord(

NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload);

return mimeRecord;

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// If NFC is not available, we won't be needing this menu

if (mNfcAdapter == null) {

return super.onCreateOptionsMenu(menu);

}

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.options, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.menu_settings:

Intent intent = new Intent(Settings.ACTION_NFCSHARING_SETTINGS);

startActivity(intent);

return true;

default:

return super.onOptionsItemSelected(item);

}

}

}

android nfc开发教程,Android NFC开发实战相关推荐

  1. 视频教程-红孩儿网狐Cocos经典棋牌开发教程-手游开发

    红孩儿网狐Cocos经典棋牌开发教程 中国早期游戏程序员,2003年起从事游戏程序开发,负责开发过多款游戏项目,曾担任大型端游<无限世界>自研引擎技术负责人,2012年起关注Cocos引擎 ...

  2. Java实例开发教程:SpringBoot开发案例

    最近在做邮件发送的服务,正常来说SpringBoot整合mail还是很方便的,然而来了新的需求:A请求使用邮箱C发送,B请求使用邮箱D发送,也就是说我们需要配置两套发送服务. 单实例 首先我们来看下单 ...

  3. 来自damon的zencart二次开发教程-3.1开发自己的zencart模板

    转载自:http://www.yunxiu.org/blog/ 今天在网上FQ看到一篇老外写的,关于制作zencart模板的文章.<Creating a new Zen Cart Templat ...

  4. AutoCAD 开发文档,AutoLISP 教程,.Net AutoCAD开发教程,VB AutoCAD开发教程,ObjectARX 开发指南,VBA AutoCAD开发教程,ActiveX 开发指南

    AutoCAD 开发文档, CAD开发者社区 - AutoCAD二次开发文档,CAD二次开发,CAD插件开发,中文CAD文档 - 中文CAD开发文档,CAD二次开发问题交流,优秀插件分享 AutoLI ...

  5. android项目开发教程,Android项目开发教程

    Android项目开发教程 编辑 锁定 讨论 上传视频 Android项目开发教程 书    名 Android项目开发教程 作    者 车金庆.何征天.李琳.严正宇.周凌翱 类    别 图书&g ...

  6. android游戏开发教程 android游戏项目教程

    丹丹老师android游戏开发视频教程150讲,本课程结合实下最为流行的Android飞行射击类游戏.RPG类游戏开发进行实战讲解,学员可在最短的时间内把技术运用到项目实战中,并能自己写出属于自己的A ...

  7. android开发教程,android开发入门教程

    所谓知己知彼才能百战百胜,想学好android就必须先了解 android是什么意思 android环境搭建 Android一词的本义指"机器人",同时也是Google于2007年 ...

  8. 2023最新Android 车载系统开发教程,车载开发入门

    近两年,在智能化汽车布局的风口下,车载成为了程序员热门话题之一.车载系统的开发让汽车的娱乐生态更加丰富,满足了人们更加多元化的需求,例如:车载的界面布局更贴近手机本身,在保证用户使用习惯的同时,让驾驶 ...

  9. android ndk 界面开发教程,AndroidStudio NDK开发最佳入门实践

    AndroidStudio NDK开发最佳入门实践 网上一些介绍AndroidStudio NDK入门的教程,感觉都不是很完整和全面,也没有告诉初学AndroidStudio NDK的同学们一些需要注 ...

  10. 安卓底层linux开发教程,Android手机平台移植与底层开发 PDF

    支持Android的热门ARM硬件平台简介 ARMv7架构SOC l TI OMAP系列,2009年OMAP3和OMAP4关注度较高 l Freescale i.MX51系列 l Qualcomm 8 ...

最新文章

  1. Exchange 2010 CAS安装之一
  2. Let Me Count The Ways(Kickstart Round H 2018)
  3. 学习笔记——pygame最常用的15个模块
  4. mysql版本选择最终建议
  5. C#.NET中的base关键字在派生类里的应用
  6. python、中循环功能可通过什么命令实现_python定时执行指定函数的方法 Python如何定时循环执行命令?...
  7. hanlp 词频统计_10.HanLP实现k均值--文本聚类
  8. 苹果AirPods有望在年末推出新款产品 或将支持防水功能
  9. 小米9正在争取首月供货超百万台 雷军:请大家帮我一起催货
  10. 腾讯广告“虚拟IP”赛题突出重围,入选第七届“互联网+”双创大赛产业命题
  11. power bi 实时_Power BI中的实时流
  12. Linux下TCP循环接收数据的方式
  13. 联想内部工程师 Vista自学手册
  14. c++设计某小型公司的 employee(人员)类
  15. matlab 计算一元函数解,遗传算法简单一元函数优化实例
  16. 数据处理之衡量数据远近的多种距离公式
  17. 注塑行业MES实施方案
  18. 蓝牙耳机选什么好?5款主打高性价比的蓝牙耳机推荐
  19. st8s003 c语言编译器,什么原因导致ST单片机STM8S003F3P6这个8位机缺货
  20. volatile保证可见性的验证

热门文章

  1. Java实现阿里云、QQ、网易邮箱JavaMail邮箱验证码 -《一抹茶-csdn》
  2. 2018全国穿越机竞速联赛沪上3月31日启动
  3. 基于DDTBOX,使用线性支持向量回归(SVR)从ERP数据中解码连续变量
  4. mac下调试android源码,MacBooK pro调试Android 8.1源码
  5. Moxa NPort 设备缺陷可能使关键基础设施遭受破坏性攻击
  6. 开源项目分享-健身房管理系统
  7. 摄像头标定与畸变矫正
  8. 方向选择(嵌入式 大数据 java)
  9. ocsp协议_什么是在线证书状态协议(OCSP)和示例教程?
  10. 剪映电脑版如何设置局部动态马赛克