微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > Android 2.3.3 近场通信NFC介绍

Android 2.3.3 近场通信NFC介绍

时间:04-19 来源:互联网 点击:

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 来了解点对点数据交换。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top