Android 2.3.3 近场通信NFC介绍
ets . UTF_8 );
final int utfBit = 0 ;
final char status = ( char ) ( utfBit + langBytes . length );
final byte [] data = Bytes . concat ( new byte [] {( byte ) status }, langBytes , textBytes);
NdefRecord record = NdefRecord ( NdefRecord . TNF_WELL_KNOWN , NdefRecord . RTD_TEXT , newbyte [ 0 ], data );
try {
NdefRecord [] records = { text };
NdefMessage message = new NdefMessage ( records );
tag . connect ();
tag . format ( message );
}
catch ( Exception e ){
//do error handling
}
点对点的数据交换
前台推送技术支持简单点对点的数据交换,你可以用 enableForegroundNdefPush(Activity, NdefMessage)方法来打开此功能 . 为了用这个功能:
· 推送数据的 Activity 必须是前台 Activity 。
· 你必须将你要发送的数据封装到 NdefMessage 对象里。
· 接收推送数据的设备必须支持 com.android.npp NDEF 推送协议,这个对于 Android 设备是可选的
假如你的 Activity 打开了前台推送功能并且位于前台,这时标准的 Intent 发布系统是禁止的。然而,如果你的Activity 允许前台发布系统,那么此时检测 tag 的功能仍然是可用的,不过只适用于前台发布系统。
要打开前台推送 :
1. 创建一个你要推送给其他 NFC 设备的包含 NdefRecords 的 NdefMessage 。
2. 在你的 Activity 里实现 onResume()和 onPause()的回调来正确处理前台推送的生命周期。你必须在你的Activity 位于前台并在主线程里调用 enableForegroundNdefPush(Activity, NdefMessage)(可以在onResume() 里调用来保证这点) .
public void onResume () {
super . onResume ();
if ( mAdapter != null )
mAdapter . enableForegroundNdefPush ( this , myNdefMessage );
}
public void onPause () {
super . onPause ();
if ( mAdapter != null )
mAdapter . disableForegroundNdefPush ( this );
}
当 Activity 位于前台,你可以靠近另外一个 NFC 设备来推送数据。请参考例子 ForegroundNdefPush 来了解点对点数据交换。
NFC 介绍 通信 近场 2 3 Android 相关文章:
- NFC技术足以改变生活方式(05-07)
- 走近NFC:你需要知道7件事(02-19)
- NFC技术引领移动支付时代 金属外壳磁场耦合难题解决方案(01-08)
- 采用NFC技术的智能手机设计方案(10-06)
- 博通:加速车联网落地的五项前沿技术(04-14)
- 一篇文章告诉你关于NFC的方方面面(08-07)