目前正在使用Java开发Android应用程序,需要以NDEF格式在NFC上发送当前时间和日期数据。 NDEF消息需要以原始十六进制格式发送数据。为了充分利用接收设备的有限空间和有限的计算能力,我选择将年份作为一个字节发送(年份数减去2000;即2014年= 14,因此该设备有效期为255年...... )。获得特定日期的最简单方法是抓住DAY_OF_YEAR并分成两个字节。当烤到屏幕上时,我似乎根本得不到正确答案。以下是评论的最低工作示例。
final Calendar c = Calendar.getInstance(); //grab an instance of calendar
int year = c.get(Calendar.YEAR)-2000; //get the year, and subtract 2000
char[] bday = new char[2]; //create a 2 byte character array for the day number
byte byear= (byte) year; //convert int year to a single byte
int day = c.get(Calendar.DAY_OF_YEAR); //get the day of the year
Toast.makeText(MenuActivity.this, "" + day, Toast.LENGTH_LONG).show(); //Toast the day int, for debugging
bday[0] = (char) day; //get the LSB of day int
bday[1] = (char) (day>>>8); //get the MSB of day int
String date = "y"+ byear "d" + bday[1] + bday[0]; //Toast the year (fine), and day (not right)