You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过pynfc库利用NFC在安卓设备上打开Telegram等即时通讯软件

问题解答

可以实现,你现有代码逻辑不需要做大幅改动,仅需要调整推送的NDEF URI记录内容即可。

安卓系统原生支持通过URI Scheme唤起对应注册了该协议的第三方应用,Telegram官方注册了tg://开头的自定义协议,你之前用于打开URL、发送短信的ndef.UriRecord本身就支持自定义协议的URI推送,完全可以复用现有逻辑。


具体实现方法

你只需要将原来推送的HTTP、SMS协议URI替换为Telegram对应的URI Scheme即可,常用的Telegram URI格式如下:

  • 直接打开Telegram主界面:tg://
  • 打开指定用户的聊天窗口:tg://user?id=用户数字ID
  • 加入指定群组:tg://join?invite=群组邀请码
  • 打开指定公开频道:tg://resolve?domain=频道公开用户名

修改后的代码示例(仅调整原有代码中推送NDEF记录的部分即可):

clf = nfc.ContactlessFrontend('usb')

def on_connect(llc):
    threading.Thread(target=llc.run).start() 
    return False
    
llc = clf.connect(llcp={'on-connect': on_connect})

snep = nfc.snep.SnepClient(llc)
# 替换为Telegram对应的URI即可
snep.put_records([ndef.UriRecord("tg://")])

注意事项

  • 目标安卓设备必须提前安装Telegram应用,否则系统无法解析tg://协议,不会触发应用唤起
  • 部分安卓定制系统默认禁止NFC触发第三方应用唤起,需要提前在系统「设置-NFC」选项中开启对应权限
  • 该逻辑同样适用于其他支持自定义URI Scheme的即时通讯应用,仅需要替换为对应应用的协议头即可

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:39:05