【发布时间】:2011-08-09 21:51:31
【问题描述】:
想知道是否有人可能有一些见解或将我指向解释以下代码行的正确文档:
byte flag = (byte) (flagOfCardData&0x04);
我不知道为什么在 flagOfCardData 之后有 &0x04。我知道它与十六进制有关,但就是这样。这是位于函数中的代码行。
public void onReceiveMsgCardData(byte flagOfCardData,byte[] cardData) {
// TODO Auto-generated method stub
byte flag = (byte) (flagOfCardData&0x04);
if(flag==0x00)
_strMSRData = new String (cardData);
if(flag==0x04)
{
//You need to dencrypt the data here first.
_strMSRData = new String (cardData);
}
_MSRData = null;
_MSRData = new byte[cardData.length];
System.arraycopy(cardData, 0, _MSRData, 0, cardData.length);
_isCardData = true;
handler.post(doHideTopDlg);
handler.post(doHideSwipeTopDlg);
handler.post(doUpdateTVS);
}
我会查找为什么要这样做,但我什至无法找出正确的搜索关键字 DOH!感谢您的所有帮助。
这是用于使用 eclipse 和 java 的 Android sdk。此外,该代码是另一个 sdk 的一部分,该 sdk 是磁卡读卡器的一部分,该读卡器通过音频端口连接到 Android 供电的设备。该产品称为 unimag pro。这是网站:http://www.idtechproducts.com/products/mobile-readers/126.html 我确实向他们发送了同样的问题,但谁知道他们是否以及何时会回复。对于可能遇到相同问题的其他人,我也会在这里发布他们的答案。
如果您需要更多信息,请告诉我。
谢谢。
【问题讨论】:
-
好吧,亲爱的!感谢大家的惊人解释。我以前从未处理过按位与。他们可以这样写吗:'flagOfCardData & 0x04' 带有空格以使其更具可读性?