ST意法半导体
直播中

贾小龙

7年用户 1595经验值
私信 关注
[问答]

如何使用android studio读取ST25DV64K-I的内存?

我想创建一个使用 NFC 读取 ST25DV64K-I 内存的应用程序。
我尝试使用官方应用程序 ST25 并读取内存...但使用的是 st25sdk-1.10.0 库。
我用的是android studio.我可以读取标签名称和UID,但我找不到如何读取内存







回帖(1)

王露

2022-12-2 15:57:56
你好
使用我们的应用程序,您可以读取内存。

这里是源代码的摘录,例如使用我们的 SDK 和不同的标签类型
假设:NFCTag mTag;
如果 (UIHelper.isAType4Tag ( mTag)) {
   // 标记类型 4
   int size = getMemoryAreaSizeInBytes(((Type4Tag) mTag), mArea);
   mNumberOfBytes = 大小;
   mStartAddress = 0;

   int fileId = UIHelper. getType4FileIdFromArea (mArea);

   // 通知用户将执行读取
   snackBarUiThread();
   if (mReadPassword != null && mTag instanceof STType4Tag) {
       mBuffer = ((STType4Tag) mTag).readBytes(fileId, 0, size, mReadPassword);
   } 别的 {
       mBuffer = ((Type4Tag) mTag).readBytes(fileId, 0, 大小);
   }
   mReadPassword = null;
   int nbrOfBytesRead = 0;
   如果(mBuffer != null){
       nbrOfBytesRead = mBuffer.length;
   }
   如果(nbrOfBytesRead != mNumberOfBytes){
       showToast(R.string.error_during_read_operation , nbrOfBytesRead);
   }
} else if (UIHelper.isAType5Tag ( mTag)){
   如果(面积 == -1){
       mAreaId = getAreaIdFromAddressInBytesForType5Tag(mStartAddress);
   }
   如果(mAreaId == -1){
       // 从 Address 检索 AreaId 时出现问题
       // 地址可能无效
       showToast(R.string.invalid_value ) ;
       返回假;

   } 别的 {
       // 类型 5
       mBuffer = getTag().readBytes(mStartAddress, mNumberOfBytes);
       // 警告:readBytes() 返回的字节数可能少于请求的字节数
       int nbrOfBytesRead = 0;
       如果(mBuffer != null){
           nbrOfBytesRead = mBuffer.length;
       }
       如果(nbrOfBytesRead != mNumberOfBytes){
           showToast(R.string.error_during_read_operation , nbrOfBytesRead);
       }
   }
} else if (UIHelper.isAType2Tag ( mTag)){
   如果(面积 == -1){
       mAreaId = getAreaIdFromAddressInBytesForType2Tag(mStartAddress);
   }
   如果(mAreaId == -1){
       // 从 Address 检索 AreaId 时出现问题
       // 地址可能无效
       showToast(R.string.invalid_value ) ;
       返回假;

   } 别的 {
       mBuffer = getTag().readBytes(mStartAddress, mNumberOfBytes);
       // 警告:readBytes() 返回的字节数可能少于请求的字节数
       int nbrOfBytesRead = 0;
       如果(mBuffer != null){
           nbrOfBytesRead = mBuffer.length;
       }
       如果(nbrOfBytesRead != mNumberOfBytes){
           showToast(R.string.error_during_read_operation , nbrOfBytesRead);
       }
   }
搜索文件:源代码中的ReadFragmentActivity,你会找到内存读取的方法。
对于write是指WriteFragmentActivity
Rgds,FB
举报

更多回帖

发帖
×
20
完善资料,
赚取积分