iPhone 蓝牙通信编程初步(网上收集)

Unity蓝牙跨平台开发终极指南:从核心原理到实战避坑 蓝牙(Bluetooth)作为一种短距离无线通信技术,其核心原理基于射频通信,通过协议栈实现设备间的数据交换。在移动应用与物联网开发中,蓝牙技术价值显著,尤其适用于智能硬件连接、设备间数据传输等应用场景。Unity引擎作为跨平台开发工具,整合蓝牙功能时需处理Android与iOS的平台差异,涉及低功耗蓝牙(BLE)通信、GATT协议及原生插件调用等关键技术。本文聚焦Unity蓝牙开发,针对跨平台通信架构设计、数据读写优化及平台特定疑难问题提供解决方案,涵盖Android JNI交互、iOS后台限制等实践要点 阅读详情

iPhone 蓝牙通信编程初步

 

  iOS 3.0的最佳功能是GameKit框架,这个框架包括了允许基于蓝牙网络进行通信的API,你可以更轻松地创建点到点的游戏和应用程序。与其它移动平台不 一样,在iPhone中使用蓝牙作为一个通信信道比预期的要容易得多,因此,本文将向你展示如何构建一个简单的应用程序,实现iPhone和iPod之间 的相互通信。

  注意:如果要测试本文所介绍的内容,需要两部iPhone(3G或3GS),或使用iPhone OS 3.0或更高版本的iPod设备(二代或更新版本)。

  创建一个项目

   使用Xcode,创建一个新的基于视图的应用程序项目,取名为Bluetooth。访问蓝牙的各种API位于GameKit框架中,因此,你需要将这个 框架添加到刚刚创建的项目中,在Xcode的框架组上点右键,选择“添加”*“现有框架”,选择GameKit框架,如图1所示。

  iPhone掌握蓝牙通信编程初体验

  图 1 添加GameKit框架

  在BluetoothViewController.h文件中,声明下面的对象,outlet和行为:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1  #import
2
3   #import
4
5   @interface BluetoothViewController : UIViewController {
6
7   GKSession * currentSession;
8
9   IBOutlet UITextField * txtMessage;
10
11   IBOutlet UIButton * connect;
12
13   IBOutlet UIButton * disconnect;
14
15   }
16
17   @ property (nonatomic, retain) GKSession * currentSession;
18
19   @ property (nonatomic, retain) UITextField * txtMessage;
20
21   @ property (nonatomic, retain) UIButton * connect;
22
23   @ property (nonatomic, retain) UIButton * disconnect;
24
25    - (IBAction) btnSend:(id) sender;
26
27    - (IBAction) btnConnect:(id) sender;
28
29    - (IBAction) btnDisconnect:(id) sender;
30
31   @ end
32
33

  GKSession对象用于表现两个蓝牙设备之间连接的一个会话,你也可以使用它在两个设备之间发送和接收数据。

  在BluetoothViewController.m文件中,添加下面的代码:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1 #import " BluetoothViewController.h "
2
3   #import
4
5   @implementation BluetoothViewController
6
7   @synthesize currentSession;
8
9   @synthesize txtMessage;
10
11   @synthesize connect;
12
13   @synthesize disconnect;
14
15

  双击BluetoothViewController.xib在Interface Builder中编辑它,在视图窗口中添加以下视图,如图2所示。

  文本区域(Text Field)

  圆形按钮(Round Rect Button)

  iPhone掌握蓝牙通信编程初体验

  图 2在视图窗口中填充文本区域和圆形按钮视图

  执行以下行为:

  按住CTRL键,在文件所有者项目上点击,将其拖放到文本区域视图上,选择txtMessage;

  按住CTRL键,在文件所有者项目上点击,将其拖放到连接按钮上,选择connect;

  按住CTRL键,在文件所有者项目上点击,将其拖放到断开连接按钮上,选择disconnect;

  按住CTRL键,在发送按钮上点击,将其拖放到文件所有者项目上,选择btnSend;

  按住CTRL键,在连接按钮上点击,将其拖放到文件所有者项目上,选择btnConnect;

  按住CTRL键,在断开连接按钮上点击,将其拖放到文件所有者项目上,选择btnDisconnect;

  在文件所有者项目上点击右键,验证所有连接是否正常,如图3所示。

  iPhone掌握蓝牙通信编程初体验

  图 3 验证所有连接是否正常

  返回Xcode,在BluetoothViewController.m文件中,添加以下代码:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1   - (void)viewDidLoad {
2
3   [connect setHidden:NO];
4
5   [disconnect setHidden:YES];
6
7   [super viewDidLoad];
8
9   }
10
11    - (void)dealloc {
12
13   [txtMessage release];
14
15   [currentSession release];
16
17   [super dealloc];
18
19   }
20
21

  搜索对等设备

  现在所有准备工作已经就绪,接下来介绍一下访问其它蓝牙设备的API。

  在BluetoothViewController.h文件中,声明一个GKPeerPickerController对象:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1 #import " BluetoothViewController.h "
2
3   #import
4
5   @implementation BluetoothViewController
6
7   @synthesize currentSession;
8
9   @synthesize txtMessage;
10
11   @synthesize connect;
12
13   @synthesize disconnect;
14
15   GKPeerPickerController * picker;
16
17

  GKPeerPickerController类提供了一个标准的UI让你的应用程序发现并连接到其它蓝牙设备,连接方法并不难,首先实现一个btnConnect:类:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1   - (IBAction) btnConnect:(id) sender {
2
3   picker = [[GKPeerPickerController alloc] init];
4
5   picker.delegate = self;
6
7   picker.connectionTypesMask = GKPeerPickerConnectionTypeNearby;
8
9   [connect setHidden:YES];
10
11   [disconnect setHidden:NO];
12
13   [picker show];
14
15   }
16
17

   connectionTypesMask属性指出用户可以选择的连接类型,包括两种类 型:GKPeerPickerConnectionTypeNearby和GKPeerPickerConnectionTypeOnline。对于蓝牙 通信,使用GKPeerPickerConnectionTypeNearby常量,GKPeerPickerConnectionTypeOnline 常量表示基于互联网的连接。

  检测到远程蓝牙设备,用户选择并连接到其中一个蓝牙设备时,调用peerPickerController:didConnectPeer:toSession:方法,这个方法的实现如下:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1 - (void)peerPickerController:(GKPeerPickerController * )picker
2
3   didConnectPeer:(NSString * )peerID
4
5   toSession:(GKSession * ) session {
6
7   self.currentSession = session;
8
9   session.delegate = self;
10
11   [session setDataReceiveHandler:self withContext:nil];
12
13   picker.delegate = nil;
14
15   [picker dismiss];
16
17   [picker autorelease];
18
19   }
20
21

  当用户已经连接到对等蓝牙设备后,可以将GKSession对象保存到currentSession属性中,这样你可以使用GKSession对象与远程设备通信。

  如果用户取消了蓝牙选择器,调用peerPickerControllerDidCancel:方法,其定义如下:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1   - (void)peerPickerControllerDidCancel:(GKPeerPickerController * )picker
2
3   {
4
5   picker.delegate = nil;
6
7   [picker autorelease];
8
9   [connect setHidden:NO];
10
11   [disconnect setHidden:YES];
12
13   }
14
15

  如果要从一个设备断开连接,使用来自GKSession对象的disconnectFromAllPeers方法,btnDisconnect:方法的实现如下:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1   - (IBAction) btnDisconnect:(id) sender {
2
3   [self.currentSession disconnectFromAllPeers];
4
5   [self.currentSession release];
6
7   currentSession = nil;
8
9   [connect setHidden:NO];
10
11   [disconnect setHidden:YES];
12
13   }
14
15

  连接设备或断开连接时,调用session:peer:didChangeState:方法,其实现如下:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1 - (void)session:(GKSession * )session
2
3   peer:(NSString * )peerID
4
5   didChangeState:(GKPeerConnectionState)state {
6
7   switch (state)
8
9   {
10
11    case GKPeerStateConnected:
12
13   NSLog(@ " connected " );
14
15   break;
16
17    case GKPeerStateDisconnected:
18
19   NSLog(@ " disconnected " );
20
21   [self.currentSession release];
22
23   currentSession = nil;
24
25   [connect setHidden:NO];
26
27   [disconnect setHidden:YES];
28
29   break;
30
31   }
32
33   }
34
35

  处理这个事件你将知道连接是什么时候建立的,或断开是什么时候发生的。例如,当建立一个连接时,你可能想要立即向对方发送数据。

  发送数据

   为了向连接的蓝牙设备发送数据,需要使用到GKSession对象的sendDataToAllPeers:方法,你发送的数据是通过NSData对象 传输的,因此你可以自定义你的应用程序协议和发送的数据类型(如二进制数据),mySendDataToPeers:方法的定义如下:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1   - (void) mySendDataToPeers:(NSData * ) data
2
3   {
4
5    if (currentSession)
6
7   [self.currentSession sendDataToAllPeers:data
8
9   withDataMode:GKSendDataReliable
10
11    error :nil];
12
13   }
14
15   再定义btnSend:方法,以便用户输入的数据能够发送到远程设备:
16
17    - (IBAction) btnSend:(id) sender
18
19   {
20
21    //--- convert an NSString object to NSData ---
22
23   NSData * data;
24
25   NSString * str = [NSString stringWithString:txtMessage.text];
26
27   data = [str dataUsingEncoding: NSASCIIStringEncoding];
28
29   [self mySendDataToPeers:data];
30
31   }
32
33

  接收数据

  当设备接收到数据时,调用receiveData:fromPeer:inSession:context:方法,其实现如下:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

1 - (void) receiveData:(NSData * )data
2
3   fromPeer:(NSString * )peer
4
5   inSession:(GKSession * )session
6
7   context:(void * )context {
8
9    //--- convert the NSData to NSString ---
10
11   NSString * str;
12
13   str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
14
15   UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@ " Data received "
16
17   message:str
18
19   delegate:self
20
21   cancelButtonTitle:@ " OK "
22
23   otherButtonTitles:nil];
24
25   [alert show];
26
27   [alert release];
28
29   }
30
31

  这里接收到的数据是NSData格式,为了使用UIAlertView类显示它,你需要将其转换为NSString对象。

  测试应用程序

  就是这么简单!现在可以开始测试了,在Xcode中按下Command-R,将程序部署到iPhone/iPod上,本文假设你有两部iPhone或两部iPod,为了运行刚刚创建的程序,这两台设备上都需要运行iPhone OS 3.0。

  部署好程序后,在两台设备上启动好程序,在任一设备上点击连接按钮,GKPeerPickerController将会显示标准的UI发现其它设备,如图4所示。

  iPhone掌握蓝牙通信编程初体验

  图 4 GKPeerPickerController查找其它设备

  等待一会儿后,两边的程序应该都能够发现对方,如图5所示,当你在发现的设备名称上轻轻点击,程序就会开始连接。

  iPhone掌握蓝牙通信编程初体验

  图 5 显示发现的设备名称

  注意:如果你在iPhone模拟器上测试这个程序,应该会检测到两个设备,但却无法连接到任何设备。

  当其它设备试图连接到你的设备时,你将会看到如图6所示的弹出提示,点击“接受”允许其连接,点击“拒绝”拒绝其连接。

  iPhone掌握蓝牙通信编程初体验

  图 6 其它设备试图连接到你时的提示

  如果成功与你建立了连接,你就可以输入一些文本信息发给对方了,从其它设备接收到数据将会以一个警告视图显示,如图7所示。

  iPhone掌握蓝牙通信编程初体验

  图 7 接收到其它设备发来的数据

蓝牙Beacon室内定位:从原理到部署的完整实战指南 室内定位技术旨在解决GPS信号在室内失效后的位置感知难题,其核心原理是通过测量已知位置的信号源与终端之间的物理关系来推算坐标。在众多技术方案中,蓝牙低功耗(BLE)广播模式因其低功耗、低成本和高兼容性,成为实现大规模室内定位的优选。蓝牙Beacon作为典型的BLE广播设备,通过持续发射包含唯一标识符的信号,使终端设备能够通过接收信号强度(RSSI)进行距离估算,进而结合多点定位算法实现空间坐标解算。这项技术的核心工程价值在于,它以极低的硬件和部署成本,为零售、仓储、展馆等场景提供了可感知、可交互的数字化空间 阅读详情

相关推荐

基于ESP32与蓝牙AVRCP协议打造Mac音乐播放物理显示器

嵌入式系统开发中,微控制器与主机设备间的通信是核心课题。通过蓝牙、串口等无线或有线协议,可以实现设备间的数据交换与控制。其中,蓝牙音频/视频远程控制配置文件(AVRCP)作为一种标准协议,专为传输媒体播放元数据与控制指令而设计,在物联网与智能硬件领域具有重要技术价值。它使得像ESP32这样的低功耗微控制器,能够稳定接收来自手机、电脑等主机设备的歌曲名、艺术家等实时信息,无需依赖复杂的网络服务或系统API。这一原理为开发独立的硬件状态显示器、智能桌面配件等应用场景提供了简洁高效的解决方案。本文即聚焦于如何利用

weixin_30388677的博客 355

英特尔Edison蓝牙配置实战:从BlueZ驱动到RFCOMM串口通信

蓝牙技术作为物联网边缘设备的关键无线连接方案,其经典蓝牙(Bluetooth Classic)协议凭借成熟的协议栈和较高的传输带宽,在嵌入式Linux系统中广泛应用。Linux系统通过BlueZ协议栈实现对蓝牙硬件的统一管理,开发者可通过命令行工具进行设备发现、配对与连接。在物联网网关等实际工程场景中,蓝牙常被用于串口透传、传感器数据采集等任务,通过RFCOMM协议模拟串口通信,实现与外围设备的稳定数据交换。本文以英特尔Edison开发板为例,详细解析在Yocto Linux环境下,从驱动加载、服务配置到建

weixin_30945039的博客 413

高通Camera PDAF调试实战:从Type2到Type3的避坑指南与Log分析技巧

本文深入解析高通Camera平台PDAF调试实战,重点对比Type2与Type3的核心差异,提供详细的配置迁移方案和Log分析技巧。针对常见兼容性问题如对焦速度变慢、低光失效等,给出具体解决方案,并分享性能优化案例与高级调试工具链,帮助开发者快速提升PDAF调试效率。

weixin_29164185的博客 411

蓝牙基本概念

蓝牙版本迭代较快,网上查找蓝牙相关书籍基本都很老,大概百度百度查了些资料整理了下1.工作信道蓝牙工作于2.4~2.48GHz ISM 频段传统蓝牙(BR/EDR)跳频信道数:79个,每个信道带宽为1MHz 2402-2480低功耗蓝牙使用40个通道,有37个通道(称为通用通道,general purpose channels)可在连接通信时使用,其它三个信道用来广播,广播信道:37、38、39,对应的中心频率是2402MHz,2426MHz,2480MHz。广播信道之间相差至少24MHz。每次广播都会在3个

一叶知秋之味的博客 6794

Lumerical官方案例、FDTD时域有限差分法仿真学习(三)——环形谐振器(Ring resonator)之第二&第三部分

二、使用 MODE 的参数提取和蒙特卡罗 三、最终参数提取

weixin_45719141的博客 1万+

配置Dot1q终结子接口实现跨设备VLAN间通信示例

示例图 一.实验目的 1.配置Dot1q终结子接口实现跨设备VLAN间通信示例 二.注意事项 1.Dot1q终结子接口和QinQ终结子接口不支持透传不带VLAN Tag的报文, 收到不带VLAN Tag的报文会直接丢弃 2.由于三层以太网子接口不支持VLAN报文,当它收到VLAN报文时,会将VLAN报文当成是 非法报文而丢弃,因此,需要在子接口上将VLAN Tag剥掉,也就是需要VLAN终结 三.VLAN终结简介 1.VLAN终结的实质包含两个方面: ①.对接口接收到报文,剥除VLAN标

qq_44751470的博客 7097

多台iPhone 使用bluetooth进行连接

目的:了解iPhone的蓝牙开发基础框架 核心:GAME KIT框架里面的GKPeerPickerController、GKSession,通过这两个类我们可以将两台iPhone使用蓝牙给连接起来并使相互之间可以发送/接收消息.GKPeerPickerController:提供一套系统界面最终使多台设备之间的蓝牙连接起来,如果机器未开启蓝牙功能时,会提示是否要打开蓝牙功

gddsky的小空间 1533

keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解

单片机的调试分为两种,一种是使用软件模拟调试,第二种是硬件调试,两种调试方式各有不同,软件模拟调试有误差,而硬件调试,借用仿真器调试是嵌入式开发中常用方法。

weixin_51624736的博客 3万+

iOS 通信协议—— 蓝牙通信

这几天小伙伴又给我提了一个新需求,要求给他们的项目提供一个iOS端的蓝牙通信App,虽然iOS也做过一些,Objective C和Swift多少也知道一些,不过并没有深入的研究过iOS的开发,为了节省工期囫囵吞枣的看了一些资料,像之前那篇文章一样,我这里就不舞大刀,我把我参考的资料就放在下面这里,你如果需要可以去看看。 《[iOS/swift]蓝牙连接》 Github代码仓库:MichaelLynx/BleDemo 《Swift CoreBluetooth 蓝牙库》 我参考这些资料和代码的基础上,重写了.

老程的技术笔记 2980

电子数据取证实战:从“平航杯”竞赛看计算机检材分析的关键技术与案例解析

本文通过'平航杯'电子数据取证竞赛案例,深入解析计算机检材分析的关键技术,包括USB设备追踪、浏览器历史分析、AI换脸取证、虚拟货币交易追踪等实战技巧。重点探讨了数字痕迹的发现与关联,以及电子取证工具链的应用,为从业人员提供实用的技术参考和案例分析。

www00的博客 536

fastlio2原理详解

其核心是利用IMU的高频数据(通常100-500Hz)进行状态预测(前向传播),同时利用激光雷达扫描(通常10-100Hz)作为观测来校正状态。转换了卡尔曼增益的计算公式,将对大维度观测矩阵的求逆(点云数量级)转换为对小维度状态矩阵的求逆,从而极大提升了计算效率。:利用预测出的连续IMU状态,将一帧内每个激光点根据其时间戳反向插值,统一校正到扫描结束时刻,输出无畸变的点云。收敛后,用最终的状态将本帧点云。,根据其精确的时间戳,利用前后两个IMU位姿进行插值,计算出该点采集时刻的精确位姿,再将其全部。

Studying…… 102

利用iOS原生框架实现蓝牙4.0通讯功能

利用iOS原生框架实现蓝牙4.0通讯功能 蓝牙4.0是蓝牙3.0+HS规范的补充,专门面向对成本和功耗都有较高要求的无线方案,可广泛用于卫生保健、体育健身、家庭娱乐、安全保障等诸多领域。 它支持两种部署方式:双模式和单模式。双模式中,低功耗蓝牙功能集成在现有的经典蓝牙控制器中,或再在现有经典蓝牙技术(2.1+EDR/3.0+HS)芯片上增加低功耗堆栈,整体架构基本不变,因此成本增加有...

Super_DL_优快云的博客 2042

RH850从0搭建Autosar开发环境【1】- 如何创建Davinci Configurator配置工程

当我们在公司接触Autosar开发环境时,基本都是完整的Davinci Configurator的配置工程,我们只能修修补补。 从本章开始将手把手搭建Rh850基于Vector公司Davinci Configurator的autosar配置工程。主要涉及到OS,COM,DCMM,NVM,BSWM,ECUM等基本模块,包括Vlink,memap使用,XCP标定的实现等。基本是实现一个基础版的项目开发。包括后期的GreenHills编译问题处理,生成最终的Hex文件。

weixin_42412049的博客 1万+

ios蓝牙开发

ios蓝牙开发

逝水无情的博客 6483

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Iphone蓝牙通信

蓝牙,相信大家都知道是什么,有了它,两台具有蓝牙功能的设备,只要距离相近就可以通信。最近我们游戏需要这个功能,因此这段时间我很大部分时间都在学习这一技术,对于Iphone开发,我们使用GameKit这个库,就可以使用蓝牙功能的API了,这里有一篇不错的文档,里面详细地介绍了怎样使用GameKit的蓝牙API,这是链接:http://tech.it168.com/a2010/0114/837/000

永远的ACE 904

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)

声明:这篇文章是楼主beautifulzzzz学习网上关于蓝牙的相关知识的笔记,其中比较多的受益于xubin341719的蓝牙系列文章,同时还有其他网上作者的资料。由于有些文章只做参考或统计不足,如涉及版权请在下面留言~。同时我也在博客分类中新建一个蓝牙通信分类,用来研究分享蓝牙相关技术。 主要参考资料的来源:xubin341719[下面是该前辈的BT系列文章]下载连接:Bluetooth...

weixin_30537451的博客 484

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

BLE 蓝牙连接参数详解

学习一下蓝牙连接参数相关知识 ...... 矜辰所致

不浮夸,不将就,认真对待学知识的我们 1906

iPhone与iWatch连接、控制、数据传递(Swift)

最近在做一个项目,涉及到iPhone设备和手表传输数据、控制彼此界面跳转,在网上找了很多资料,发现国内的网站这方面介绍的不多,而国外的网站写的也不是很全,所以在这写这篇博客,给大家参考一下,望大神指点一二。 iPhone和iWatch配对这个不需要多说,百度搜索答案一...

chibaoque1858的博客 420

蓝牙开发实战:四类高频问题的排查与解决

蓝牙开发中,最棘手的问题往往不是配对失败,而是连接后数据不通、设备掉线或驱动异常。这类问题涉及从射频到应用层的完整链路,排查时需要系统化的思路。通过理解SPP、BLE等协议原理,配合串口终端、nRF Connect等工具,可以高效定位问题。例如,利用串口蓝牙终端验证GPS模块的NMEA数据流,通过分析BLE广播包应对信道拥塞,以及解决Windows下Generic Bluetooth Radio驱动故障。掌握完整的排查框架,能大幅减少盲目试错,提升嵌入式联调和设备调试的效率。

weixin_33806914的博客 383

iPhone 5即将基于NFC的苹果产品

iPhone 5即将基于NFC的苹果产品 苹果是一家美国的跨国公司,是流行的生产电子产品,计算机软件,个人电脑和笔记本电脑。苹果已经获得了不少人气人民内部为它的iPhone,iPod和iPad。意想不到的结果其先前的iPhone系列后,现在苹果已经生产了iPhone 5的是尚未正式公布。这是正说,苹果将宣布这款iPhone 5直到2011年第三季度末。 苹果iPhone 5将配备:双核A5处理器的

tnmiwn的专栏 461

iPhone NFC门禁模拟全攻略:从交通卡到校园卡,解锁手机刷卡新姿势

NFC(近场通信)是一种短距离无线通信技术,通过电磁感应实现设备间数据交换。其核心原理基于射频识别(RFID),工作频率通常为13.56MHz,支持卡模拟、读写器和点对点三种模式。在移动设备领域,NFC技术为无接触支付、门禁控制和信息交换提供了安全便捷的解决方案。苹果为保障金融安全和用户隐私,在iOS系统中采用了严格的SE安全元件架构,将NFC权限主要限定于Apple Pay和钱包应用。这种设计虽然限制了第三方应用的直接读写能力,但通过交通联合卡等标准化方案,用户仍可实现稳定的门禁模拟功能。对于校园卡等复杂

weixin_33755557的博客 396

蓝牙HID协议实现跨设备自动化控制:原理、实战与避坑指南

蓝牙HID(人机接口设备)协议是连接键盘、鼠标等外设的通用标准,其核心原理在于通过模拟标准输入设备,向主机发送控制指令。这项技术的工程价值在于提供了一种底层、通用的跨设备控制方案,它不依赖特定操作系统的高级权限或专用软件,直接从硬件交互层面实现指令传输,从而具备良好的系统兼容性与低延迟特性。在应用场景上,该技术尤其适用于自动化测试、硬件调试、批量设备操作以及需要稳定、非侵入式控制的嵌入式环境。本文聚焦于利用蓝牙HID协议实现“无自动化投屏”控制,详细拆解了从环境搭建、协议层连接到应用层指令发送的完整流程,并

402

我iphone用了一年多了,居然很多技巧都不懂,分享下

网上偶然看到篇帖子,才发现我的iphone用了这么久都没有用明白,好多技巧都不知道,给一样不懂的朋友们分享下! 1. iphone技巧ˇ编写短信的时候,如果想把写的内容全删掉,只需晃动你的iphone几下,会弹出个窗口,选择“撤销键入”就可把内容全删掉了,不用按着删除键半天了。如果想把刚删掉的内容恢复,晃动iphone选择“重做键入”,刚删掉的内容就回来了;如果是刚粘贴过来的,晃动可以“撤销粘贴

∧︵∧全世界的屋顶 ∧︵∧ 933
上一篇: iPhone wifi使用socket连接Internet
下一篇: cocos2d学习
daneildemon
博客等级 码龄16年 5粉丝 14原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值