网页设计工资一般多少杭州/被逆冬seo课程欺骗了

网页设计工资一般多少杭州,被逆冬seo课程欺骗了,网站的安全性建设,网络服务是哪个一、引言 NFC(Near Field Communication)近场通信技术,以其便捷、快速的数据交互特性,正广泛应用于各个领域。其中,NFC 碰一碰发视频这一应用场景,为用户带来了新颖且高效的视频分享体验。想象一下&#x…

一、引言

NFC(Near Field Communication)近场通信技术,以其便捷、快速的数据交互特性,正广泛应用于各个领域。其中,NFC 碰一碰发视频这一应用场景,为用户带来了新颖且高效的视频分享体验。想象一下,只需轻轻一碰,就能将精彩视频传输到对方设备,无需繁琐的蓝牙配对或网络共享设置。本文将深入探讨如何搭建实现 NFC 碰一碰发视频功能的源码。

二、NFC 技术基础

(一)NFC 工作原理

NFC 基于射频识别(RFID)技术,通过磁场感应进行通信。当两个支持 NFC 的设备靠近时,其中一个设备作为发起方,产生射频场,另一个设备作为目标方,通过感应该射频场获取能量并进行数据交互。其工作频率通常为 13.56MHz,通信距离较短,一般在几厘米以内,这确保了数据传输的安全性和隐私性。

(二)NFC 的三种工作模式

  1. 卡模拟模式:设备模拟成一张智能卡,可用于支付、门禁等场景。例如,手机模拟公交卡进行刷卡乘车。
  1. 读写器模式:设备作为读写器,读取 NFC 标签或其他设备中的数据。在我们的 NFC 碰一碰发视频应用中,发送方设备可读取存储视频信息的 NFC 标签。
  1. 点对点模式:两个 NFC 设备直接进行数据交换,本文的 NFC 碰一碰发视频正是基于此模式实现。

三、开发环境搭建

(一)硬件准备

  1. 支持 NFC 的设备:如 Android 手机(大部分中高端 Android 手机都支持 NFC 功能)。
  1. NFC 标签(可选):如果需要预先存储视频相关信息,可准备 NFC 标签。常见的 NFC 标签有 NTAG213、NTAG215 等型号。

(二)软件环境

  1. Android Studio:作为 Android 开发的主要集成开发环境(IDE),用于编写、调试和构建 Android 应用程序。
  1. Android SDK:软件开发工具包,包含了开发 Android 应用所需的各种库、工具和 API。确保安装了与目标 Android 版本对应的 SDK。

四、源码实现步骤

(一)创建 Android 项目

打开 Android Studio,创建一个新的 Android 项目。在项目创建向导中,选择合适的项目模板(如 Empty Activity),并配置项目名称、包名等基本信息。

(二)添加 NFC 权限

在项目的 AndroidManifest.xml 文件中,添加 NFC 权限声明,以确保应用能够访问设备的 NFC 功能:

 

<uses-permission android:name="android.permission.NFC" />

同时,为了确保应用在设备支持 NFC 功能时才显示相关界面或功能,可添加如下代码以声明对 NFC 的硬件支持:

 

<uses-feature android:name="android.hardware.nfc" android:required="true" />

(三)初始化 NFC 功能

在 Android 应用的主 Activity 类中,初始化 NFC 功能。首先,获取 NFC 管理器实例:

 

NfcManager nfcManager = (NfcManager) getSystemService(Context.NFC_SERVICE);

NfcAdapter nfcAdapter = nfcManager.getDefaultAdapter();

然后,检查设备是否支持 NFC 功能:

 

if (nfcAdapter == null) {

// 设备不支持NFC,提示用户并做相应处理

Toast.makeText(this, "设备不支持NFC", Toast.LENGTH_SHORT).show();

finish();

}

(四)处理 NFC 意图

当两个 NFC 设备靠近并触发数据交换时,系统会发送一个 NFC 意图(Intent)。在 Activity 的 onCreate 方法中,注册一个 PendingIntent,用于处理 NFC 意图:

 

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,

new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);

IntentFilter[] intentFilters = new IntentFilter[] {

new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED)

};

String[][] techLists = new String[][] {

new String[] { Ndef.class.getName() }

};

nfcAdapter.enableForegroundDispatch(this, pendingIntent, intentFilters, techLists);

接下来,在 onNewIntent 方法中处理接收到的 NFC 意图:

 

@Override

protected void onNewIntent(Intent intent) {

setIntent(intent);

handleIntent(intent);

}

private void handleIntent(Intent intent) {

if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {

Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);

if (rawMsgs != null) {

NdefMessage[] msgs = new NdefMessage[rawMsgs.length];

for (int i = 0; i < rawMsgs.length; i++) {

msgs[i] = (NdefMessage) rawMsgs[i];

}

// 处理接收到的NDEF消息,提取视频相关信息

processNdefMessages(msgs);

}

}

}

(五)构建和发送视频数据

要发送视频,首先需要将视频文件转换为适合 NFC 传输的数据格式。由于 NFC 传输的数据量有限,对于较大的视频文件,可先将视频的相关信息(如视频链接、视频文件的哈希值等)进行封装成 NDEF 消息。

NDEF(NFC Data Exchange Format)是 NFC 设备之间交换数据的标准格式。创建一个包含视频信息的 NDEF 消息示例代码如下:

 

try {

byte[] videoUri = "http://example.com/video.mp4".getBytes("UTF-8");

NdefRecord uriRecord = NdefRecord.createUri(new String(videoUri));

NdefMessage ndefMessage = new NdefMessage(new NdefRecord[] { uriRecord });

// 将NDEF消息写入NFC标签或通过NFC发送给其他设备

writeNdefMessageToTag(ndefMessage);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

在 writeNdefMessageToTag 方法中,实现将 NDEF 消息写入 NFC 标签或发送给其他 NFC 设备的逻辑。如果是发送给其他设备,可通过 NfcAdapter 的 transceive 方法实现:

 

private void writeNdefMessageToTag(NdefMessage ndefMessage) {

Tag tag = getTagFromIntent(intent); // 从意图中获取目标NFC标签或设备的Tag对象

try {

Ndef ndef = Ndef.get(tag);

if (ndef != null) {

ndef.connect();

ndef.writeNdefMessage(ndefMessage);

ndef.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

(六)接收和处理视频数据

在接收方设备的 processNdefMessages 方法中,对接收到的 NDEF 消息进行解析,提取出视频相关信息。如果接收到的是视频链接,可通过 Android 的网络请求库(如 OkHttp)下载视频;如果是视频文件的哈希值等信息,可根据具体业务逻辑进行相应处理。

 

private void processNdefMessages(NdefMessage[] msgs) {

for (NdefMessage msg : msgs) {

NdefRecord[] records = msg.getRecords();

for (NdefRecord record : records) {

if (record.getTnf() == NdefRecord.TNF_WELL_KNOWN && Arrays.equals(record.getType(), NdefRecord.RTD_URI)) {

String videoUri = new String(record.getPayload(), Charset.forName("UTF-8"));

// 处理视频链接,例如启动视频下载或播放

downloadOrPlayVideo(videoUri);

}

}

}

}

五、优化与扩展

(一)性能优化

  1. 数据压缩:对于较大的视频相关数据,在发送前进行适当压缩,以减少 NFC 传输的数据量,提高传输速度。
  1. 异步处理:在处理 NFC 数据读写、视频下载等耗时操作时,使用异步任务(如 Android 的 AsyncTask 或线程池),避免阻塞主线程,保证应用的流畅性。

(二)功能扩展

  1. 支持多种视频格式:在解析和处理视频数据时,增加对多种视频格式的支持,确保不同格式的视频都能正确传输和播放。
  1. 加密与安全:为了保护视频数据的安全性,可在传输过程中对数据进行加密,接收方设备再进行解密。同时,对视频文件的来源和访问权限进行管理,防止非法访问和传播。

六、总结

通过以上步骤,我们成功搭建了 NFC 碰一碰发视频的源码。从 NFC 技术原理的理解,到开发环境的搭建,再到源码的具体实现和优化扩展,每一步都为实现这一便捷的视频分享功能奠定了基础。NFC 碰一碰发视频不仅为用户提供了独特的交互体验,也为开发者探索 NFC 技术在更多领域的应用提供了思路。随着 NFC 技术的不断发展和普及,相信会有更多创新的应用场景基于此诞生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73752.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++从入门到入土(八)——多态的原理

目录 前言 多态的原理 动态绑定与静态绑定 虚函数表 小结 前言 在前面的文章中&#xff0c;我们介绍了C三大特性之一的多态&#xff0c;我们主要介绍了多态的构成条件&#xff0c;但是对于多态的原理我们探讨的是不够深入的&#xff0c;下面这这一篇文章&#xff0c;我们将…

Linux目录理解

前言 最近在复习linux&#xff0c;发现有些目录总是忘记内容&#xff0c;发现有些还是得从原义和实际例子去理解会记忆深刻些。以下是个人的一些理解 Linux目录 常见的Linux下的目录如下&#xff1a; 1. 根目录 / (Root Directory) 英文含义&#xff1a;/ 是文件系统的根…

c++领域展开第十七幕——STL(vector容器的模拟实现以及迭代器失效问题)超详细!!!!

文章目录 前言vector——基本模型vector——迭代器模拟实现vector——容量函数以及push_back、pop_backvector——默认成员函数vector——运算符重载vector——插入和删除函数vector——实现过程的问题迭代器失效memcpy的浅拷贝问题 总结 前言 上篇博客我们已经详细介绍了vecto…

植物知识分享论坛毕设

1.这四个文件直接是什么关系&#xff1f;各自都是什么作用&#xff1f;他们之间是如何联系的&#xff1f; 关系与联系 UserController.java 负责接收外部请求&#xff0c;调用 UserService.java 里的方法来处理业务&#xff0c; 而 UserService.java 又会调用 UserMapper.jav…

Business processes A bridge to SAP and a guide to SAP TS410 certification

Business processes A bridge to SAP and a guide to SAP TS410 certification

算法 之 ST表

文章目录 区间最大值 ST表(Sparse Table)是一种高效处理静态数据区间查询的数据结构&#xff0c;主要的作用是用于快速查询区间的最值&#xff0c;区间GCD,区间按位与或 在这里以区间最大值为例子说明st表的模版 总体的思想就是定义dp[i][j]表示下标为i长度为2^j的区间的最大值…

Deepseek X 文心智能体:谐音梗广告创意大师

体验链接 飞书文档 一、引言 在当今竞争激烈的市场环境下&#xff0c;广告创意对于产品或服务的推广至关重要。谐音广告以其独特的语言魅力&#xff0c;能够迅速吸引受众的注意力并留下深刻印象。本智能体旨在利用 DeepSeek 模型强大的语言分析和推理能力&#xff0c;为用户…

TCP简单链接的编程实现

TCP简单链接的编程实现 本文主要介绍TCP应用层的编码实现。 TCP是一种面向连接的、可靠的、基于字节流的传输层协议&#xff0c;它是互联网协议套件&#xff08;TCP/IP&#xff09;中的核心协议之一&#xff0c;广泛应用于需要可靠数据传输的场景&#xff0c;如&#xff1a;网…

【RHCE实验】搭建主从DNS、WEB等服务器

目录 需求 环境搭建 配置nfs服务器 配置web服务器 配置主从dns服务器 主dns服务器 从dns服务器 配置客户端 客户端测试 需求 客户端通过访问 www.nihao.com 后&#xff0c;能够通过 dns 域名解析&#xff0c;访问到 nginx 服务中由 nfs 共享的首页文件&#xff0c;内容…

【HarmonyOS Next之旅】DevEco Studio使用指南(三)

目录 1 -> 一体化工程迁移 1.1 -> 自动迁移 1.2 -> 手动迁移 1.2.1 -> API 10及以上历史工程迁移 1.2.2 -> API 9历史工程迁移 1 -> 一体化工程迁移 DevEco Studio从 NEXT Developer Beta1版本开始&#xff0c;提供开箱即用的开发体验&#xff0c;将SD…

nodejs使用 mysql2 模块获取 mysql 中的 json字段,而不是 mysql

mysql 模块获取的 json 字段&#xff0c;是字符串mysql2 模块获取的 json 字段&#xff0c;是符合预期的 json 对象 mysql mysql2 最后编辑于&#xff1a;2025-02-24 22:16:53 © 著作权归作者所有,转载或内容合作请联系作者 喜欢的朋友记得点赞、收藏、关注哦&#xff01;…

【网工第6版】第1章 计算机网络概论

目录 1计算机网络形成和发展 ■计算机网络 ■我国互联网发展 ■计算机网路分类 ■计算机网络应用 2 OSI和TCP/IP参考模型 ■网络分层的意义 ■OSI参考模型 ■TCP/IP参考模型 ■TCP/IP参考模型协议 3 数据封装与解封过程 ■封装 ■解封 1计算机网络形成和发展 ■计…

理解我们单片机拥有的资源

目录 为什么要查询单片机拥有的资源 所以&#xff0c;去哪些地方可以找数据手册 一个例子&#xff1a;STM32F103C8T6 前言 本文章隶属于项目&#xff1a; Charliechen114514/BetterATK: This is a repo that helps rewrite STM32 Common Repositorieshttps://github.com/C…

《我的Python觉醒之路》之转型Python(十五)——控制流

[今天是2025年3月17日&#xff0c;继续复习第一章节、第二章节的内容 ] 《我的Python觉醒之路》之转型Python&#xff08;十四&#xff09;——控制流

AndroidStudio+Android8.0下的Launcher3 导入,编译,烧录,调试

文章目录 编译完成搜索输出文件Android.mk配置gradle编译环境报错一报错二报错三输出文件下载INSTALL_FAILED_TEST_ONLY查找系统签名查找签名工具开始签名查看签名签名问题重新生成秘钥解决方案生成成功挽救错误:重新刷机更换testkey秘钥keystore生成keystoreINSTALL_FAILED_S…

Linux--gdb/cgdb

ok&#xff0c;我们今天学习gdb的安装和使用 调试器-gdb/cgdb使用 VS、VScode编写的代码一般都是release格式的&#xff0c;gdb 的格式一般是debug 换成debug模式命令 :-g gdb会记录最新的一条命令&#xff0c;直接回车就是默认执行该命令 一个调试周期下&#xff0c;断点…

ModBus TCP/RTU互转(主)(从)|| Modbus主动轮询下发的工业应用 || 基于智能网关的串口服务器进行Modbus数据收发的工业应用

目录 前言 一、ModBus TCP/RTU互转&#xff08;从&#xff09;及应用|| 1.1 举栗子 二、ModBus TCP/RTU互转&#xff08;主&#xff09; 2.1 举栗子 三、ModBus 主动轮询 3.1 Modbus主动轮询原理 3.2 Modbus格式上传与下发 3.2.1.设置Modbus主动轮询指令 3.2.2 设…

【操作系统安全】任务2:用户与用户组

目录 一、用户与用户组介绍 1.1 用户 1.2 用户组 1.3 用户与用户组的关系 二、用户与用户组管理 2.1 用户管理 2.1.1 创建用户 2.1.2 设置用户密码 2.1.3 删除用户 2.2 用户组管理 2.2.1 创建用户组 2.2.2 删除用户组 2.2.3 将用户添加到用户组 三、影子账户创建…

OpenCV计算摄影学(20)非真实感渲染之增强图像的细节函数detailEnhance()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 此滤波器增强特定图像的细节。 cv::detailEnhance用于增强图像的细节&#xff0c;通过结合空间域和频率域的处理&#xff0c;提升图像中特定细节…

10、基于osg引擎生成热力图高度图实现3D热力图可视化、3D热力图实时更新(带过渡效果)

1、结果 2、完整C代码 #include <sstream> #include <iomanip> #include <iostream> #include <vector> #include <random> #include <cmath> #include <functional> #include <osgViewer/viewer> #include <osgDB/Read…