You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

NFC读取后打开应用:Android应用NFC触发启动实现咨询

嘿,我来帮你搞定NFC触发打开Android App的事儿!你已经用QR码+网页跳转的方式实现了App启动,那NFC的实现思路其实更直接——不需要中间网页过渡,只要让NFC标签存储你的深度链接,再给App配置好响应NFC触发的规则就行。下面是具体步骤:

一、选对NFC标签的数据格式

Android对NDEF(NFC Data Exchange Format)格式的标签支持最好,尤其是其中的URI记录类型,这是直接触发App深度链接的最优解,比绕网页跳转高效多了。

二、给NFC标签写入内容

你可以用现成的NFC工具App(比如NFC Tools)来快速写入,不用自己写代码:

  • 打开NFC工具,选择「创建NDEF记录」
  • 选择URI类型,输入你的深度链接:myapp://params
  • 把NFC标签贴近手机背部的感应区,完成写入

如果之后需要自己写代码批量写入标签,核心代码大概是这样(Java示例):

// 创建URI类型的NDEF记录
NdefRecord uriRecord = NdefRecord.createUri("myapp://params");
// 组装成NDEF消息
NdefMessage ndefMessage = new NdefMessage(new NdefRecord[]{uriRecord});
// 后续就是连接NFC标签、写入消息的逻辑(需要处理NFC适配和权限)
三、给你的App配置NFC响应规则

这步是关键!要在AndroidManifest.xml里告诉系统:“我的App能处理这个NFC链接”。

  1. 先声明NFC权限和硬件支持(在Manifest根节点添加):
<uses-permission android:name="android.permission.NFC" />
<!-- 如果你的App不是必须依赖NFC,把required改成false -->
<uses-feature android:name="android.hardware.nfc" android:required="true" />
  1. 在你要启动的Activity(比如主Activity)的标签里,添加响应NFC的intent-filter:
<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    <category android:name="android.intent.category.DEFAULT" />
    <!-- 指定你的深度链接scheme,和myapp://对应 -->
    <data android:scheme="myapp" />
</intent-filter>

敲黑板:NDEF_DISCOVERED是优先级最高的NFC触发动作,系统检测到标签里的URI是myapp://开头时,会直接唤起你的App,完全不需要网页跳转。

四、测试验证
  1. 打开手机的NFC功能
  2. 把写入好的NFC标签贴近手机背部感应区
  3. 系统会直接弹出你的App,或者让你选择启动的App(如果有多个App响应同个scheme),选你的App就搞定了!
备选方案:兼容非NDEF标签

如果遇到不支持NDEF格式的老标签,也可以退而求其次——在标签里写入你的网页链接http://myaddress.com/myapp/params(文本记录类型)。手机读取后会提示打开浏览器,然后通过你现有的网页refresh跳转打开App。不过这种方式多了一步浏览器跳转,体验不如直接用NDEF URI记录。

内容的提问来源于stack exchange,提问作者Teejay

火山引擎 最新活动