做web还是app
当你决定创建一个在线业务或移动应用程序时,你需要考虑做web还是app。这个决策取决于多个因素,包括你的业务需求、预算、时间限制和目标受众。WebWeb应用程序是指在浏览器中运行的软件。Web应用程序不需要安装,直接通过互联网浏览器访问。Web应用程序的运行依赖于服务器端和客户端之间的交互。因此,它...
2023-11-09 围观 : 3次
NFC技术近年来被越来越多的移动设备采用,其简化了无线操作流程,使得用户可以扫一扫或者贴标签的方式轻松完成付款、门禁、公交等。本文将详细介绍NFC原理及在安卓开发中的应用。
一、NFC原理介绍
NFC是近场通讯(Near Field Communication)的缩写,其基于RFID射频识别技术,操作在13.56MHz的频率上。NFC技术分为两种模式:读卡模式和P2P模式。
1、读卡模式
读卡模式是NFC通讯方式中最常用的模式,通常用于读取NFC标签或卡片中存储的数据。传统的RFID在读取时需要对卡片进行物理接触,而读卡模式的NFC可以在几厘米内无联系读取卡片上的信息。
2、P2P模式
通过P2P模式,两台支持NFC的设备就可以在很短的距离之内(一般是几公分)进行信息交换和传输数据。P2P模式需要两台设备都支持NFC技术。
二、开发NFC应用
在安卓开发中,使用NFC技术进行开发需要使用NFC类,Android从4.0版本开始支持NFC技术。
1、权限声明
在开发前需要在AndroidManifest.xml文件中添加以下权限声明:
```
```
其中android.permission.NFC用于访问NFC模块,android.hardware.nfc用于判断硬件是否支持NFC,android:required=”true”表示如果设备不支持NFC,则不允许应用程序安装。
2、NFC类使用
在开发中,我们需要使用NfcAdapter类来获取默认的NFC控制器。
```
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
```
使用enableForegroundDispatch(方法启用前台调度系统)或disableForegroundDispatch(方法禁用前台调度系统)方法来启用或禁用前台调度系统。
```
nfcAdapter.enableForegroundDispatch(this, PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0), null, null);
```
此方法需要传递一个PendingIntent,用于在NFC标签碰触时执行操作。
在Android4.0以上版本中,读取NFC标签时可以用OnNewIntent方法处理,该方法自动调用。在该方法中处理你自己的业务逻辑即可。
```
@Override
protected void onNewIntent(Intent intent) {
String action = intent.getAction();
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)
|| NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)
|| NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) {
// 处理卡片信息
}
}
```
以上是一个简单的NFC开发流程的介绍,具体可以参考安卓官方文档。
三、应用实例
1、门禁系统
在门禁系统方面,用户需要将门卡数据写入NFC标签,以后只需要将手机靠近门禁刷卡器,门就可以自动开启,收到门禁卡的数据则自动弹出门卡一样的显示信息。
2、公交系统
通过NFC技术,可以利用手机对公交卡进行充值、查询、乘坐等操作。用户将公交卡信息写到手机中,刷卡时,公交车NFC设备读取手机内的公交卡信息,进行扣款,完成乘车。
四、总结
NFC技术呈现出多种便利应用形式,并能够与安卓系统无缝连接。安卓系统调用其API功能,在开发过程中,开发者可借助基于NFC技术的前沿通讯应用,完成项目需要的相应模块。
当你决定创建一个在线业务或移动应用程序时,你需要考虑做web还是app。这个决策取决于多个因素,包括你的业务需求、预算、时间限制和目标受众。WebWeb应用程序是指在浏览器中运行的软件。Web应用程序不需要安装,直接通过互联网浏览器访问。Web应用程序的运行依赖于服务器端和客户端之间的交互。因此,它...
Android开发工具是Android App开发人员必备的工具之一,为了提升开发人员的安卓开发效率,Google推出了一系列优秀的开发工具,下面我就来为大家介绍一下这些工具的用途及其原理。1. Android StudioAndroid Studio是官方提供的一款安卓开发集成开发环境,它的目标是...
苹果分发平台是苹果公司提供的一种用于分发iOS应用程序的平台,也称为企业级应用分发平台。它可以让企业或组织在不通过App Store的情况下,将自己的应用直接分发给内部员工或特定用户。本文将介绍苹果分发平台的原理和详细流程。一、苹果分发平台的原理苹果分发平台的原理是通过iOS设备的UDID(Uniq...
学习安卓开发是一个需要持续学习、实践,才能不断提高的过程。对于完全没有编程基础的人来说,入门会比较难,需要投入更多的时间和精力。以下是一个初学者学习安卓开发需要考虑的几个因素:1.前置知识在学习安卓开发之前,需要先具备一些基础的编程知识,如基本的编程思路、算法、数据结构等。建议初学者先学习变色龙基础...
控制台程序是一种在命令行窗口中运行的程序,通常被用于执行一些简单的任务,如系统管理、文件操作等。在Windows操作系统中,控制台程序通常以扩展名为“.exe”的可执行文件形式存在。然而,对于一些需要在多台计算机上部署的控制台程序来说,直接将源代码或可执行文件复制到目标计算机上是不可行的,因此需要将...