Android 应用程序在 NFC 标签中添加多个记录

2023-12-04

大家,我是开发android应用程序的初学者,目前我需要将一些数据写入NFC标签来检查我自己的NFC阅读器程序,但是,我可以尝试的那些应用程序只能将一条记录写入标签,这不匹配我要求里面有几条记录,最后有一个AAR记录,所以我想问一下是否有人知道任何可以提供此功能的应用程序或者以前有人编写过这样的程序?谢谢!

public class Writer extends Activity {

NfcAdapter mAdapter;
PendingIntent mPendingIntent;
IntentFilter mWriteTagFilters[];
boolean mWriteMode;
Tag detectedTag;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_writer);
    mAdapter = NfcAdapter.getDefaultAdapter(this);
    mPendingIntent = PendingIntent.getActivity(this, 0,
            new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
    IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
    mWriteTagFilters = new IntentFilter[] { tagDetected };

    //enableTagWriteMode();
    //Intent intent = getIntent();

}

private void enableTagWriteMode(){
    mWriteMode = true;
    mAdapter.enableForegroundDispatch(this, mPendingIntent, mWriteTagFilters, null);
}

private void disableTagWriteMode(){
    mWriteMode = false;
    mAdapter.disableForegroundDispatch(this);
}

public void SetTag(View view){
    EditText editText1 = (EditText) findViewById(R.id.edit_message1);
    EditText editText2 = (EditText) findViewById(R.id.edit_message2);
    String message1 = editText1.getText().toString();
    String message2 = editText2.getText().toString();
    byte[] textBytes1 = message1.getBytes();
    byte[] textBytes2 = message2.getBytes();
    NdefRecord textRecord1 = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, 
            message1.getBytes(), new byte[]{}, textBytes1);
    NdefRecord textRecord2 = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, 
            message2.getBytes(), new byte[]{}, textBytes2);
    NdefMessage mNdefMessage = new NdefMessage(
        new NdefRecord[]{
                textRecord1,
                textRecord2,
                NdefRecord.createApplicationRecord("android.reader")
        }
    );
    writeTag(mNdefMessage, detectedTag);    
}

public static void writeTag(NdefMessage message, Tag tag){
    int size = message.toByteArray().length;
    try {
        Ndef ndef = Ndef.get(tag);
        if (ndef != null){
            ndef.connect();
            if (ndef.isWritable() && ndef.getMaxSize() > size)
                ndef.writeNdefMessage(message);
        }else{
            NdefFormatable format = NdefFormatable.get(tag);
            if (format != null) {
                try {
                    format.connect();
                    format.format(message);
                }catch(IOException e){

                }
            }
        }
    }catch(Exception e){

    }
}

@Override
protected void onNewIntent(Intent intent){
    if(mWriteMode && NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction()))
        detectedTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);        
}

@Override
public void onPause(){
      super.onPause();
    disableTagWriteMode();
}

@Override
public void onResume(){
      super.onResume();
    enableTagWriteMode();
}


}

您需要在清单文件中为您的应用程序提供 NFC 支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 应用程序在 NFC 标签中添加多个记录 的相关文章

  • 缺少layout_height属性堆栈跟踪?

    我正在继续挖掘市场崩溃报告 并发现了另一份我无法理解的报告 堆栈跟踪 java lang RuntimeException Binary XML file line 17 You must supply a layout height at
  • 如何在Android中添加水平滚动视图和列表视图

    我正在尝试创建一个应用程序 因为我需要创建一个列表视图 但最重要的是我想要一个用于多个数据的水平列表视图 我很困惑我们该如何做到这一点 请帮助我 主要活动 XML
  • 使用服务时应用程序终止时音乐暂停

    我正在使用一个Service类在后台播放音乐 当我在顶部显示通知栏时 我的应用程序出现问题 当我终止该应用程序时 音乐停止约 1 秒 然后再次开始 我不知道出了什么问题 我正在关注this https www simplifiedcodin
  • 如何从活动启动另一个应用程序(下载或预安装)?

    基本上 我想获取所有已安装应用程序的列表 并选择一个从活动中运行 我尝试过使用 Intents 进行 ACTION PICK 但这似乎遗漏了已下载的应用程序 并且其中有一堆垃圾 Thanks to get the list of apps
  • 如何在 Android 中编辑 asset 文件夹中的文本文件?

    我正在使用 Android 中资产文件夹中的文本文件 我想动态更改该文本文件内的数据 我试图按如下方式打开该文件 FileOutputStream fos this getAssets openNonAssetFd data txt cre
  • 选项 多个活动通用的菜单项

    安卓系统设计指南 http developer android com design patterns help html表示 帮助 应始终放置为溢出菜单的最后一项 它不应该出现在 ActionBar 中 而且 它应该出现在每个活动中 以便
  • Android 版 YouTube 频道订阅

    我在我的应用程序中使用 YouTube API 用户可以使用其 Google 帐户登录 我希望用户能够订阅某些 YouTube 频道 这里似乎有一些关于网络的东西 https developers google com youtube su
  • OpenCV warpPerspective 性能缓慢

    在我的应用程序中 我跟踪一个物体 到达它的地方corners都在这个框架中 我发现它之间的单应性corners从最后一帧开始和 当前帧 使用单应性来做perspectiveTransform on the corners在当前帧中找到 得到
  • Paypal 支付页面布局在 webview android 中损坏

    我在某些 Android 设备上遇到一个奇怪的问题 我正在 webview 上打开 PayPal 支付页面 但它的布局在某些设备上被破坏 请任何人有任何想法 请提出建议 我被困住了 该截图设备的浏览器为chrome版本34 0 1847 1
  • 如何使用baseadapter自定义listview

    我想创建一个定制的ListView像这样 我想我必须使用BaseAdapter但我对此一无所知 主要 xml
  • 在发布我的应用程序之前在 play.google 上获取我的应用程序的链接

    我想使用 facebook api 分享我的应用程序的链接 play google 上的链接 但在将应用程序发布到市场之前我必须拥有它才能将其放入我的代码中 除了发布后立即更新我的应用程序之外 还有其他解决方案吗 用这个 https pla
  • 让每个观察者仅在订阅/观察时接收*新的LiveData

    每当你打电话时 observe 在 LiveData 上 观察者接收该 LiveData 的最后一个值 这在某些情况下可能有用 但对我来说没有用 每当我打电话 observe 我希望观察者只接收未来的 LiveData 更改 而不是它在以下
  • Android 视频循环缓冲区与声音

    我正在使用谷歌的开源示例 Grafika https github com google grafika 我正在使用它ContinuousCaptureActivity java https github com google grafik
  • 方向改变后的javascript最大视口高度Android和iOS

    目标 查找设备的最大视口高度 包括设备的空间address bar这样我们就可以动态调整 min body 的大小并将内容向上推 问题 移动浏览器处理方向状态的方式不同 方向变化时更新 DOM 属性的方式也不同 使用 JavaScript
  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • 用dagger 2查看依赖注入

    我有一个自定义视图扩展TextView 我应该在哪里调用我的组件来注入视图 component inject customTextView 因此 我发现我需要在自定义视图的构造函数中添加注入 在所有视图中 或者使一个调用另一个 Exampl
  • 使用react-native使用WebView设置用户代理

    我想修改 WebView 中的用户代理字符串 以便在服务器端我可以检测到请求来自我的反应本机应用程序 我想使用 WebView 中的 source 属性来做到这一点 对于 IOS 和 Android 我该如何执行此操作 您只需将其设置为 W
  • 旋转 LayerDrawable 中的单个 RotateDrawable

    我正在构建一个带有某种指南针的应用程序 并且我想使用 LayerDrawable 来绘制指南针并为其设置动画 LayerDrawable 由用于指南针背景的静态背景图像和用于旋转部分的 RotateDrawable 组成 这是我的可绘制资源
  • 使用 Android 2.x 进行实时音频流传输

    我需要在 2 x 及更高版本的设备上播放直播 This http developer android com guide appendix media formats html声明不可能在 Android 2 x 的设备上播放直播 我在这里
  • 如何等待 Kotlin 协程完成

    我读过几十篇文章 但不知何故 没有一个答案似乎适用于我的情况 我想要实现的是在Fragment中等待ViewModel使用Room执行操作 Dao Query SELECT FROM my table WHERE id id suspend

随机推荐

  • Regex & BBCode - 完善嵌套报价

    我正在为我的网站编写一些 BBcode 我已经设法让大部分代码完美运行 但是 QUOTE 标签给了我一些悲伤 当我得到这样的东西时 QUOTE 1 QUOTE 2 This is a quote from someone else QUOT
  • 显示已过去时间

    我需要动态显示经过的时间 我的代码将根据间隔值弹出一条消息 public void button1 Click object sender EventArgs e this TopMost true DialogResult result1
  • Swift 线程 1:致命错误:init(coder:) 尚未实现(调用超级解决方案不起作用)

    嘿伙计们 我已经四处寻找 但仍然找不到解决我的问题的方法 我这里有一个自定义类 import UIKit DatasourceController is simply a UICollectionViewController that al
  • 使用套接字时发送当前值的 Unity 延迟

    Visual Studio 中的 client cs private void SendToServer string HeartRate SetHRTest HeartRate try s client GetStream StreamR
  • 通过 Javascript 预览 Html 文件上传

    我想为一篇文章展示预览之类的东西 所以通过 JS 获取详细信息 但问题来了
  • SVG onmouseover 对于具有重叠元素的组发生两次

    当将函数附加到onmouseoverSVG 组的事件
  • 如何隐藏图像的物理路径

    在我的应用程序中 我通过给出目录的物理路径来显示用户的图像 例如http www example com user images abcdefghijk jpg 但我不想向外部用户公开这个物理路径来访问直接文件 我想根据 gravtar 类
  • 如何在 scala 中将嵌套 JSON 转换为映射对象

    我有以下 JSON 对象 user id 123 data city New York timestamp 1563188698 31 session id 6a793439 6535 4162 b333 647a6761636b user
  • 如何从 hsearch 中删除元素

    我正在使用 GNU C 库提供的 hsearch r 函数 我发现虽然我可以使用 hsearch r 将元素添加到哈希表中并将操作作为 ENTER 传递 但我看不出有什么方法可以从哈希表中删除元素或条目 有人知道为什么会这样吗 我可以执行以
  • 使用 APP_INITIALIZER 延迟加载模块

    我们有一个应用程序 我们通过路由器延迟加载模块 我们需要在应用程序模块启动之前加载一些资源 但我们不想在路由器上使用解析 这就是为什么我们尝试创建一些提供程序工厂 APP INITIALIZER 来从服务器加载一些数据 然后在该延迟加载模块
  • 如何使 PopupWindow 居中?

    我创建了一个活动 其中添加了一个按钮 单击该按钮时会弹出一个弹出窗口 以下是 showPopup 方法的代码 private void showPopup LayoutInflater inflater LayoutInflater thi
  • Java:如何在单个线程中与多个客户端通信

    我有一个属于单个线程的套接字列表 但我想知道是否有一种可行的方式与这些客户端进行通信 读 写 我不想为每个客户端创建一个线程 因为可能有太多用户 并且为每个客户端创建一个线程可能成本太高 我想说蔚来是你最好的选择 查看有关通过套接字进行 N
  • 长时间运行的 ASP.NET 任务

    我知道有很多 API 可以执行此操作 但我也知道托管环境 ASP NET 对您可以在单独的线程中可靠地执行的操作设置了限制 我可能完全错了 所以如果我错了 请纠正我 但这就是我认为我所知道的 请求通常会在 120 秒后超时 这是可配置的 但
  • 当我的程序未激活时如何处理键盘快捷键?

    如果我像这样使用它可以用于多个事件吗 unit Unit4 interface uses Windows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs
  • 性能随着数组元素嵌套的增加而降低

    简短说明 这个问题涉及另一个我之前问过的 但由于在一个问答中提出多个问题被认为是不好的 SO 风格 所以我将其分开 Setup 我有以下两种矩阵计算的实现 第一个实现使用matrix of shape n m 并且在 for 循环中重复计算
  • Dropzone 在 init 函数上添加 id 并排序

    我需要将现有图像的 ID 放入拖放区预览中 并能够将排序顺序发送到后端 我拥有的 获取现有图像 对图像进行排序 我需要的 添加图像 ID 进行预览 将排序顺序发送到后端 Code 代码的每个部分都带有注释 以便更好地理解 Dropzone
  • 在“模板基类”中调用模板方法时出错

    下面的代码无法编译 为什么呢 我该如何解决这个问题 struct A template
  • YouTube 数据 API 搜索不支持在日期之后发布

    我有这个查询 YouTube Search List search youtube search list id search setOrder viewCount search setMaxResults 50 search setPub
  • 在类路径上检测到 2 个 Spring WebApplicationInitializers

    我有一个 Spring Boot Web 应用程序 当我将其部署到 Tomcat 7 0 54 上的服务器上时 我在 catalina out 中收到以下消息 INFO 2 Spring WebApplicationInitializers
  • Android 应用程序在 NFC 标签中添加多个记录

    大家 我是开发android应用程序的初学者 目前我需要将一些数据写入NFC标签来检查我自己的NFC阅读器程序 但是 我可以尝试的那些应用程序只能将一条记录写入标签 这不匹配我要求里面有几条记录 最后有一个AAR记录 所以我想问一下是否有人