首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过Android NFC传输纯文本?

通过Android NFC传输纯文本,可以通过以下步骤实现:

  1. 确保设备支持NFC功能,并且已经打开了NFC开关。
  2. 在Android应用中,首先需要获取NFC适配器对象,可以使用以下代码获取:
代码语言:txt
复制
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
  1. 确保应用已经获得了NFC权限,在AndroidManifest.xml文件中添加以下权限:
代码语言:txt
复制
<uses-permission android:name="android.permission.NFC" />
  1. 创建一个NDEF消息,用于存储要传输的纯文本数据。可以使用以下代码创建一个包含纯文本的NDEF消息:
代码语言:txt
复制
NdefMessage ndefMessage = new NdefMessage(
    new NdefRecord[] { NdefRecord.createTextRecord(null, "Hello, NFC!") });
  1. 在应用中注册一个NDEF消息的写入回调函数,用于在检测到NFC标签时写入NDEF消息。可以使用以下代码注册回调函数:
代码语言:txt
复制
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter ndefIntentFilter = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
try {
    ndefIntentFilter.addDataType("text/plain");
} catch (IntentFilter.MalformedMimeTypeException e) {
    e.printStackTrace();
}
IntentFilter[] intentFiltersArray = new IntentFilter[] { ndefIntentFilter };
String[][] techListsArray = new String[][] { new String[] { NfcF.class.getName() } };
nfcAdapter.enableForegroundDispatch(this, pendingIntent, intentFiltersArray, techListsArray);
  1. 在Activity的onNewIntent方法中处理NDEF消息的写入操作,可以使用以下代码将NDEF消息写入NFC标签:
代码语言:txt
复制
@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
        Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        Ndef ndef = Ndef.get(tag);
        if (ndef != null) {
            try {
                ndef.connect();
                ndef.writeNdefMessage(ndefMessage);
                ndef.close();
                Toast.makeText(this, "NFC传输成功!", Toast.LENGTH_SHORT).show();
            } catch (IOException | FormatException e) {
                e.printStackTrace();
            }
        }
    }
}

以上步骤完成后,当设备靠近支持NFC的标签时,应用将自动检测到NFC标签,并将纯文本数据写入标签中。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动推送:https://cloud.tencent.com/product/tpns
  • 腾讯云物联网通信平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云数据库 MySQL 版:https://cloud.tencent.com/product/cdb-for-mysql
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云云原生容器服务:https://cloud.tencent.com/product/tke
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发笔记(一百六十一)NFC近场通信

NFC的全称是“Near Field Communication”,意思是近场通信、与邻近的区域通信。大众所熟知的NFC技术应用,主要是智能手机的刷卡支付功能。别看智能手机是近十年前才出现的,NFC的历史可比智能手机要悠久得多,它脱胎于上世纪的RFID无线射频识别技术。 所谓RFID是“Radio Frequency Identification”的缩写,它通过无线电信号便可识别特定目标并读写数据,而无需自身与该目标之间建立任何机械或者光学接触。像日常生活中的门禁卡、公交卡,乃至二代身份证,都是采用了RFID技术的卡片。若想读写这些RFID卡片,则需相应的读卡器,只要用户把卡片靠近,读卡器就会产生感应动作。 既然RFID已经广泛使用,那么何苦又要另外制定NFC标准呢?其实正是因为RFID用的地方太多了,导致随意性较大,反而不便于更好地管控。所以业界重新定义了NFC规范,试图在两个方面弥补RFID的固有缺憾: 1、RFID的信号传播距离较远,致使位于远处的设备也可能获取卡片信息,这对安全性较高的场合是不可接受的。而NFC的有效工作距离在十厘米之内,即可避免卡片信息被窃取的风险。 2、RFID的读写操作是单向的,也就是说,只有读卡器能读写卡片,卡片不能拿读卡器怎么样。现在NFC不再沿用“读卡器——卡片”的模式,取而代之的是只有NFC设备的概念,两个NFC设备允许互相读写,既可以由设备A读写设备B,也可以由设备B读写设备A。 改进之后的NFC技术既提高了安全性,又拓宽了应用场合,同时还兼容现有的大部分RFID卡片,因此在智能手机上运用NFC而非RFID也就不足为怪了。 带有NFC功能的手机,在实际生活中主要有三项应用:读卡、写卡、分享内容(两部手机之间传输数据)。为了能更迅速地了解NFC技术在Android中的开发流程,下面通过相对简单的读卡功能,来介绍如何进行手机App的NFC开发。 首先App工程要在AndroidManifest.xml中声明NFC的操作权限,下面是配置声明的例子:

02

Android开发笔记(五十五)手机设备基本操作

手机的基本信息分两类,一类是与电话有关的信息,另一类是设备自身的信息。 与电话有关的信息可由TelephonyManager类获得,常用的参数与对应的方法如下所示: 网络运营商名称 : getNetworkOperatorName 网络运营商编号 : getNetworkOperator,返回五位数字,前三位表示国家代码(中国的为460),后两位表示运营商代码(中国移动为0,中国联通为1,中国电信为2) 手机类型 : getPhoneType 网络类型 : getNetworkType获得细分类型,getNetworkClass获得大类如2G/3G/4G SIM卡状态 : getSimState SIM卡运营商名称 : getSimOperatorName SIM卡运营商编号 : getSimOperator SIM卡序列号 : getSimSerialNumber IMSI : getSubscriberId IMEI : getDeviceId 手机号码 : 实测发现多数情况下getLine1Number和getMsisdn都无法正确取到号码,但是很多APP又需要用户的手机号,那又得想办法获取号码,获取的方法大致有如下几种: 1、用户首次使用,提示用户注册手机号,然后保存起来,下次就能取到手机号了; 2、APP自动用该手机发一条免费短信(比如向10086发),然后到发件箱中寻找该短信的发送号码; 3、如果能连到运营商的支撑系统,那么根据IMSI去后台系统查询手机号,这也是可以的; 设备自身的信息可由Build类获得,常用的参数与对应的方法如下所示: 手机厂商 : Build.MANUFACTURER 手机品牌 : Build.BRAND 手机型号 : Build.MODEL 设备名称 : Build.DEVICE CPU指令 : Build.CPU_ABI 芯片型号 : Build.HARDWARE 手机序列号 : Build.SERIAL SDK版本 : Build.VERSION.SDK_INT 系统版本 : Build.VERSION.RELEASE 版本代号 : Build.VERSION.CODENAME

02

Android开发笔记(一百零五)社会化分享SDK

社会化分享,指的是用户通过互联网这个媒介,把文本/图片/多媒体信息分享到该用户的交际圈,从而加快信息传播的行为。对于app来说,网络社区虽多,但用户量足够大的就那几个,所以app的社会化分享功能抓住几个大的圈子就够了,比如说QQ、微信、QQ空间、微信朋友圈、新浪微博、腾讯微博等等。下面是截止到2016年6月6日,根据应用宝官网的统计,主要社交app的下载次数: QQ : 42亿次下载 微信 : 24亿次下载 QQ空间 : 12亿次下载 新浪微博 : 5.8亿次下载 腾讯微博 : 1.4亿次下载 除了社交app的分享,还有传统的信息传播途径,例如发短信、发邮件等等。另外,出于安全考虑或流量消耗,有的用户不希望直接分享多媒体信息,所以应当允许用户复制文本或链接,由用户自行决定分享形式。

02
领券