简单的 NFC 代码不起作用?

2024-01-01

我正在尝试开始使用 NFC 编写应用程序。我只需要从一部手机向另一部手机发送一条仅包含简单字符串的 NDef 消息。

我的传输活动:

public class MainActivity extends Activity {

    NfcAdapter mNfcAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
        if (mNfcAdapter == null) {
            Toast.makeText(this, "NFC is not available", Toast.LENGTH_LONG).show();
            finish();
            return;
        }
        NdefMessage msg = new NdefMessage(
                new NdefRecord[] { createTextRecord("Bla", Locale.GERMANY , true )});
        mNfcAdapter.setNdefPushMessage(msg, this);
    }



    public NdefRecord createTextRecord(String payload, Locale locale, boolean encodeInUtf8) {
        byte[] langBytes = locale.getLanguage().getBytes(Charset.forName("US-ASCII"));
        Charset utfEncoding = encodeInUtf8 ? Charset.forName("UTF-8") : Charset.forName("UTF-16");
        byte[] textBytes = payload.getBytes(utfEncoding);
        int utfBit = encodeInUtf8 ? 0 : (1 << 7);
        char status = (char) (utfBit + langBytes.length);
        byte[] data = new byte[1 + langBytes.length + textBytes.length];
        data[0] = (byte) status;
        System.arraycopy(langBytes, 0, data, 1, langBytes.length);
        System.arraycopy(textBytes, 0, data, 1 + langBytes.length, textBytes.length);
        NdefRecord record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN,
        NdefRecord.RTD_TEXT, new byte[0], data);
        return record;
    }
   }

然后我只是尝试在另一部手机上接收一些发生了事情的意图:

public class MainActivity extends Activity {

    NfcAdapter mNfcAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
        if (mNfcAdapter == null) {
            Toast.makeText(this, "NFC is not available", Toast.LENGTH_LONG).show();
            finish();
            return;
        }
    }


    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();

            if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
                Toast.makeText(getApplicationContext(), "Received an Event onResume", Toast.LENGTH_LONG).show();
            }

        }

}

遗憾的是,如果我点击手机,什么也不会发生。谢谢你的帮助!


在他们的网站上 http://developer.android.com/guide/topics/connectivity/nfc/nfc.html。您应该始终首先查找文档。

本文档介绍了您在 Android 中执行的基本 NFC 任务。它 解释如何以 NDEF 消息的形式发送和接收 NFC 数据 并描述了支持这些功能的 Android 框架 API。 对于更高级的主题,包括与合作的讨论 非 NDEF 数据,请参阅高级 NFC。

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

简单的 NFC 代码不起作用? 的相关文章

随机推荐

  • 平衡绳的串联复杂度是多少?

    我查看了不同的论文 以下是我收集的信息 SGI实施 http www sgi com tech stl ropeimpl html and C cords http www cs ubc ca local reading proceedin
  • 不寻常的范围解析运算符

    今天重构一些 C 代码时 我得到了一些代码 可归结为以下内容 class x public void x y 是否x 范围解析运算符在这里做任何事情 这是一个错误 还是其他什么 我最好的猜测是 它是一些自动完成功能留下的人工制品 但我很想知
  • 从文件系统或 URL 解析 iPhone 的 Objective-C 中的 m3u 文件

    下面的示例应从 m3u 播放列表获取链接并将其添加到 anArray 所以我会得到NSArray NSMutableArray 其中包含某些链接 NSString fileContents NSString stringWithConten
  • 使用 JavaScript 三角法缩放旋转图像以填充 HTML5 Canvas?

    下面是我当前正在使用的代码 和0旋转 图像正确缩放以填充画布 如同background size cover 除了在 Canvas 上使用 JavaScript 我正在尝试添加旋转功能 具有以下功能 旋转时保持图像居中 我尝试使用width
  • 1318 - PROCEDURE 的参数数量不正确

    DROP PROCEDURE ModificarUsuario CREATE DEFINER root localhost PROCEDURE ModificarUsuario IN Aid INT IN Aced VARCHAR 100
  • 如何获取启动时运行的 CHKDSK 结果?

    有问题的 CHKDSK当我的机器重新启动时运行 并显示一些内容 问题是我不知道它显示了什么 因为它随后继续 完成后重新启动机器 我怎样才能让它停下来 暂停一下还是让我看看它做了什么 chkdsk 无法运行 因为该卷正在被另一个进程使用 CH
  • 如何从 pyodbc 结果行创建逗号分隔的字符串?

    我有一个存储在cursor rows 中的行结果集 这些行是从pyodbc cursor execute 命令返回的 解压这些数据并将其放入逗号分隔字符串列表 或解压到自定义对象中 的最快方法是什么 目前我正在做以下事情 cursor ex
  • 如何使用 Google Sheets API 添加超链接?

    我正在尝试编写一个 python 脚本来添加超链接到谷歌工作表 我正在为此使用谷歌API 通过搜索 我发现我需要向其余 api 传递 HYPERLINK 类型的消息 来自文档 https developers google com shee
  • 如何检查单选按钮

    我有以下 MySQL 表 id Title Windows Linux IDE GUI RAD 1 Software 1 1 0 1 0 0 2 Software 2 0 1 0 1 0 我想通过查询 mySQL 数据库来填充表单 到目前为
  • 使用 std::function 移动语义

    std function从右值引用提供构造函数 按照标准 移动的函数对象会发生什么 会不会是空的 这样再次调用就没有效果了 这个问题有太多的混乱 我会尽力把事情说清楚 本节描述 std 定义对象的移出状态 17 6 5 15 lib typ
  • ECMAScript 6 中的 Symbol.for(string)

    我花了一段时间 但我终于弄清楚了 ECMAScript 6 中符号的用途是什么 在将属性附加到共享对象 例如 HTML 元素 时避免名称冲突 如果您遇到同样的问题 我建议本文 https hacks mozilla org 2015 06
  • 基于 div 而非 screen 的条件 CSS

    所以我做了一些研究并且接近答案 但是我想要做的事情可能无法仅用 CSS 实现 我真的希望如此 最终目标是 如果 id 为 Primary 的元素的宽度为 915 或更小 则将一类 bricks 的元素的宽度设置为 90 html 片段 di
  • 从数据创建 CMSampleBufferRef

    我正在尝试从数据创建 CMSampleBuffer Ref 并尝试将其提供给 AVAssetWriter 但资产编写者未能根据数据创建电影 以下是创建 CMSampleBufferRef 的代码 CVImageBufferRef cvimg
  • 从 QList 填充 QVector

    我有一个 QList 和 QVector 我填充 Qlist 然后尝试复制到 QVector 奥维特有一个来自列表 http qt project org doc qt 4 8 qvector html fromList方法 但这不起作用
  • 链接到 jQuery 文件的最佳方式[重复]

    这个问题在这里已经有答案了 就网站性能 速度而言 链接到 jquery 是否更好 如下所示 或者将文件放在服务器上并从那里链接到它们 如下所示 这取决于谁拥有更快的服务器 对吗 有一些优点code jquery com 这很常见 如果用户访
  • 将十六进制字符串转换为十六进制整数

    我必须将十六进制字符串转换为十六进制整数 如下所示 color 0xFF00FF can be any color else defined by functions colorto 0xFF00FF copy of color but f
  • Google App Engine 502 具有“上游过早关闭连接”,但似乎无法到达我们的实例

    我们有一个提供 API 的 Node js App Engine 服务 很少 500 个请求中就有 1 个 向客户端返回 502 并从 Google Cloud Logging 的 nginx 日志中获取错误 upstream premat
  • 偏航、俯仰和滚转值延迟

    我正在 Windows Phone 7 1 中开发一个应用程序 我需要手机在 x 轴和 y 轴上的当前旋转度数 我尝试使用运动 API 并使用它提供的偏航俯仰和滚动的适当值 但它提供的值是延迟的 因为如果我移动手机太快并将其旋转到 90 度
  • SoapUI - 自动将自定义 SOAP 标头添加到传出请求中

    所以我想要做的是自动将 SOAP 标头添加到 SoapUI 中生成的每个请求中 因为我有数百个请求 手动执行此操作很烦人 可以说 这是我从 WSDL 生成的示例请求 如下所示
  • 简单的 NFC 代码不起作用?

    我正在尝试开始使用 NFC 编写应用程序 我只需要从一部手机向另一部手机发送一条仅包含简单字符串的 NDef 消息 我的传输活动 public class MainActivity extends Activity NfcAdapter m