首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏ShaoYL

    iOS中的蓝牙

    iOS中的蓝牙 概述 iOS中提供了4个框架用于实现蓝牙连接 1.GameKit.framework(用法简单) 只能用于iOS设备之间的同个应用内连接,多用于游戏(eg.拳皇,棋牌类),从iOS7开始过期 2.MultipeerConnectivity.framework(代替1) 只能用于iOS设备之间的连接,从iOS7开始引入,主要用于非联网状态下,通过wifi或者蓝牙进行文件共享(仅限于沙盒的文件 ),多用于附近无网聊天 3.ExternalAccessory.framework(MFi) 可用于第三方蓝牙设备交互,但是蓝牙设备必须经过苹果MFi认证(国内很少) 4.CoreBluetooth.framework (时下热门) 可用于第三方蓝牙设备交互,必须要支持蓝牙4.0 硬件至少是4s,系统至少是iOS6 蓝牙4.0以低功耗著称,一般也叫BLE(Bluetooth Low Energy) 目前应用比较多的案例

    1.5K70发布于 2018-05-11
  • 来自专栏学海无涯

    iOS开发之蓝牙(一)

    iOS开发中,我们最常用的蓝牙开发框架应该是Core Bluetooth,因为它可以与第三方蓝牙设备交互(必须要支持蓝牙4.0),蓝牙4.0以低功耗著称,所以一般也叫BLE(Bluetooth Low 在Core Bluetooth中提供了与蓝牙设备进行通信所需的类与协议,所以在开发之前一定要将他们的关系弄清楚,那么开发起来才会事半功倍。 两种开发模式 中心模式的开发步骤 创建CBCentralManager实例进行蓝牙管理 搜索外围设备 连接外围设备 获得外围设备的服务 获得服务的特征 从外围设备读数据(读取或订阅) 给外围设备发送数据 断开连接 注意问题 不要对Core Bluetooth中的任何类进行子类化 iOS 10以后需要在info.plist文件中加上NSBluetoothPeripheralUsageDescription

    1.5K41发布于 2019-03-15
  • 来自专栏ShaoYL

    iOS 蓝牙的GameKit用法

    一、连接蓝牙 显示可以连接的蓝牙设备列表 - (IBAction)buildConnect:(id)sender { // 创建弹窗 GKPeerPickerController *ppc 点击发送数据完成图片显示到另一个蓝牙机器上 1.分析需要通过GKSession对象来传递数据,所以在peerPickerController:didConnectPeer:didConnectPeer :的方法中保存session会话 @property (nonatomic, strong) GKSession *session; /**< 蓝牙连接会话 */ // 连接成功就会调用 - (void data]; // 写入相册 UIImageWriteToSavedPhotosAlbum(self.imageView.image, nil, nil, nil); } 三、注意 只能用于iOS 设备之间的链接 只能用于同一个应用程序之间的连接 最好别利用蓝牙发送比较大的数据

    85750发布于 2018-05-11
  • 来自专栏JusterZhu

    MASA MAUI Plugin IOS蓝牙低功耗(三)蓝牙扫描

    介绍 之前两篇文章我们实现了安卓蓝牙BLE的相关功能,本文我们将IOS的BLE功能实现一下。 该状态一共有如下枚举,从字面意思很好理解 Unknown, //手机没有识别到蓝牙 Resetting, //手机蓝牙已断开连接 Unsupported, //手机蓝牙功能没有权限 Unauthorized , //手机蓝牙功能没有权限 PoweredOff,//手机蓝牙功能关闭 PoweredOn //蓝牙开启且可用 权限检查这里和安卓有一些区别,在重写的RequiredInfoPlistKeys方法中指定了需要检查的蓝牙权限 蓝牙扫描的效果和安卓机是完全一样的,这里就不展示了。 可以点击以下链接滑倒最后查看演示效果 MASA MAUI Plugin 安卓蓝牙低功耗(一)蓝牙扫描 iOS调试及错误排查 目前在windows的vs环境调试MAUI的ios程序,是不需要mac电脑支持的

    2.4K10编辑于 2022-12-07
  • 来自专栏freesan44

    ios蓝牙应用的后台处理

    如果你的应用在后台时也需要处理蓝牙事件,就必须在Info.plist中声明应用要支持蓝牙后台模式,这样,当有蓝牙事件发生时,系统会唤醒应用来处理。 有两种蓝牙后台模式,一种为central角色,另一种为peripheral角色。如果应用需要两种角色,则可以声明支持两种模式。

    1.2K30发布于 2018-09-05
  • 来自专栏一“技”之长

    iOS开发之蓝牙通讯 原

    iOS开发之蓝牙通讯 一、引言         蓝牙是设备近距离通信的一种方便手段,在iPhone引入蓝牙4.0后,设备之间的通讯变得更加简单。 相关的蓝牙操作由专门的CoreBluetooth.framework进行统一管理。 通过蓝牙进行通讯交互分为两方,一方为中心设备central,一方为外设peripheral,外设通过广播的方式向外发送信息,中心设备检索到外设发的广播信息,可以进行配对连接,进而进行数据交互。         //状态未知 CBCentralManagerStateUnknown = 0, //连接断开 即将重置 CBCentralManagerStateResetting, //该平台不支持蓝牙 CBCentralManagerStateUnsupported, //未授权蓝牙使用 CBCentralManagerStateUnauthorized, //蓝牙关闭 CBCentralManagerStatePoweredOff

    1.4K20发布于 2018-08-15
  • 来自专栏正则

    iOS app中蓝牙的后台处理

    早期iOS系统无真后台,后期因为考虑到特殊场景,比如说音乐定位,后台下载等需求。苹果提供了BackGround Mode为特殊应用提供后台模式,蓝牙也在此列。 作为app开发,我觉得可以从业务上重新思考下产品形态,后台虽好,也不宜贪杯 ---- 以下是原文,翻译自Apple Doc. iOS app中蓝牙的后台处理(Core Bluetooth Background Processing for iOS Apps) 对于iOS app来说,知道你的app是前台还是后台非常重要。 合理使用后台执行模式 虽然声明一种甚至两种蓝牙后台执行模式可以处理一些必需的场景,你也应该控制后台执行的情况。因为在后台执行时需要使用iOS设备的无线通信,这一部分对电池电量消耗比较大。 后台执行较长时间任务 有一些app可能需要在后台较长时间使用核心蓝牙模块。举个例子,你可能需要开发一款家居安全的app在iOS设备上,它可以和你的门锁(实现了BLE协议的)通信。

    5.5K30发布于 2021-11-04
  • 来自专栏zhimingcow

    iOS13蓝牙访问的权限问题

    用户权限 iOS13及以上苹果增加了用户权限的询问,在首次打开APP时,会询问用户是否允许使用蓝牙
    2. 蓝牙关闭 2.1、 在“设置”关闭蓝牙,系统会提示“打开蓝牙来允许XXX连接到配件” 2.2、 在“控制中心”关闭蓝牙,系统不会做任何提示,这时候需要自定义弹窗提示,而这两种情况又无法区分,所以这个自定义弹窗只能都弹 注意 “设置”打开或关闭蓝牙,“控制中心”也会打开或关闭蓝牙,两者同步; “控制中心”打开蓝牙,“设置”也会打开蓝牙; “控制中心”关闭蓝牙,不会影响“设置”; 通过属性CBManagerState 获取的是“控制中心”的蓝牙状态。 iOS13增加了属性CBManagerAuthorization,来获取蓝牙的授权状态. �

    4.7K10发布于 2020-04-24
  • 来自专栏Antony iOS Development

    iOS蓝牙开发如何更好地收发数据

    3月中旬跳槽了,一直在新公司「填坑」,看着「先人」写的代码,觉得是有改善空间的,所以这次想聊下这部分内容——iOS蓝牙开发中如何更好地更好地收发数据。 适读对象: 想初步了解iOS蓝牙开发的朋友(最好连计算机基础都没有,就像我这种没有计算机科班基础的伪程序猿(真文科汪)); 做过蓝牙开发,但是没有很「优雅」地收发数据的朋友(直接用C语言char数组装回来 注意: 本文所说的蓝牙,指BLE(Bluetooth Low Energy/低功耗蓝牙)。一般应用苹果的官方框架CoreBluetooth开发。 我们先简单回顾一下整个蓝牙数据接收的一般流程: 1、蓝牙在不断地在广播信号; 2、APP扫描; 3、发现设备(根据名称或「服务」的UUID来辨别是不是我们要连接的设备); 4、连接(成功); 5、调用方法发现 所以,你从蓝牙接收到的数据,不要问我有什么意义,表示的是什么。

    3.4K32发布于 2019-02-14
  • 来自专栏网罗开发

    iOS 蓝牙4.0开发使用(内附 Demo)

    一: 介绍 近几年,智能设备越来越火,这些智能设备中,有很大一部分是通过手机来控制硬件设备,来达到预期的效果,这中间少不了要使用到蓝牙功能,通过蓝牙来通信来控制设备。 蓝牙分为蓝牙2.0和蓝牙4.0。 蓝牙2.0为传统蓝牙,传统蓝牙也称为经典蓝牙蓝牙4.0因为低耗电,所以也叫做低功耗蓝(BLE),它将三种规格集一体,包括传统蓝牙技术、高速技术和低耗能技术。 CBPeripheral *cbPeripheral; // 外设状态 @property (nonatomic, assign) CBManagerState peripheralState; @end // 蓝牙 CBPeripheralDelegate协议 @interface ESPFBYBLEHelper ()<CBCentralManagerDelegate,CBPeripheralDelegate> 然后需要检测蓝牙状态

    2.1K10发布于 2021-01-29
  • 来自专栏iOS 备忘录

    一文学会iOS蓝牙开发

    一文学会iOS蓝牙开发 背景 最近做APP对接蓝牙设备开发,这里分享一下iOS对接蓝牙设备中需要注意的东西,大致包含下面这些方面: Xcode蓝牙权限 如何扫描蓝牙设备、获取Mac地址 不同蓝牙设备切换 初始化蓝牙调用 再开始看代码前,可以先看下面的思维导图,来自iOS蓝牙知识快速入门(详尽版) 有了大致印象后,然后来看右下那部分CoreBluetooth的使用。 辅助方法 大部分转换方法来自IOS 蓝牙通信各种数据类型之间的转换,使用时按需使用即可。 下面的代码参考iOS蓝牙开发中的CRC8校验,是 CRC8 maxin 校验。 参考 iOS蓝牙知识快速入门(详尽版) iOS蓝牙开发CoreBluetooth全面讲解 IOS 蓝牙通信各种数据类型之间的转换 iOS 对两个相等长度的字符串进行异或运算 iOS蓝牙开发中的CRC8校验

    3.5K20编辑于 2023-12-27
  • 来自专栏项目文章

    IOS开发:UniAPP实现BLE低功耗蓝牙开发1

    ,可编译到iOS、Android、H5、小程序等多个平台。 2、Uni-app优点 3、BLE开发流程 1、初始化蓝牙 uni.openBluetoothAdapter(OBJECT) 2、开始搜索蓝牙设备 uni.startBluetoothDevicesDiscovery (OBJECT) 5、连接低功耗蓝牙设备 uni.createBLEConnection(OBJECT) 6、获取蓝牙设备所有服务 uni.getBLEDeviceServices(OBJECT) 7、获取蓝牙特征 uni.getBLEDeviceCharacteristics(OBJECT) 8、启用蓝牙设备特征值变化时的 notify 功能 uni.notifyBLECharacteristicValueChange (OBJECT) 9、监听低功耗蓝牙设备的特征值变化 uni.onBLECharacteristicValueChange(CALLBACK) 10、写入蓝牙 uni.writeBLECharacteristicValue

    1.7K10编辑于 2024-06-07
  • 来自专栏一“技”之长

    iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计

    iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计 一、引言     本系列博客将系统的介绍一款蓝牙对战五子棋的开发思路与过程,其中的核心部分有两个,一部分是蓝牙通讯中对战双方信息交互框架的设计与开发 本篇博客将介绍游戏中蓝牙通讯类的设计思路 二、设计通讯类的核心想法    在前篇的一篇博客中,我们有详细的介绍iOS蓝牙4.0技术的应用与系统框架CoorBluetooth.framework中提供的编程接口的用法 博客地址如下,如果读者需要更详细的了解iOS蓝牙技术的使用,可以先阅读这篇博客: iOS开发之蓝牙通讯:http://my.oschina.net/u/2340880/blog/548127。     在使用蓝牙进行应用间通讯交互时,必须有一方作为中心设备,有一方作为外围设备。 由上面分析可知,游戏中的房主正是充当蓝牙通讯中的外设,它将广播广告告知周围设备自己的存在。而游戏中的加入者则是充当着蓝牙通讯中的中心设备,扫描到周围的游戏房间后进行连接加入,开始游戏。

    1.5K60发布于 2018-08-15
  • 来自专栏全栈程序员必看

    Android蓝牙开发(二)之蓝牙配对和蓝牙连接

    上篇文章:https://blog.csdn.net/huangliniqng/article/details/82185983 讲解了打开蓝牙设备和搜索蓝牙设备,这篇文章来讲解蓝牙配对和蓝牙连接 1. 蓝牙配对 搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对 蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹出配对确认框,点击确认后配对 自动配对就是搜索到蓝牙设备后自动配对不需要输入pin码,但在基本开发中都不采用这种方式,所以这里说的是第一种配对方式 点击配对,调用 BluetoothDevice.class.getMethod 中所以从list中取) 点击之后怎会弹出配对确认框,且必须被配对的手机也点击确认配对才可以配对成功如图: 同样的,如果我们想要配对的设备取消配对 只需要将creatBond改为removeBond 2.蓝牙连接 : 配对成功之后,就可以进行蓝牙连接了,蓝牙连接操作比较耗时,可以在一个线程中进行: 调用自己定义的 connect(listdevice.get(position)); 同样传递的参数也是设备device

    4.9K20编辑于 2022-09-07
  • 来自专栏代码男人

    Android蓝牙开发(二)之蓝牙配对和蓝牙连接

    上篇文章:https://blog.csdn.net/huangliniqng/article/details/82185983 讲解了打开蓝牙设备和搜索蓝牙设备,这篇文章来讲解蓝牙配对和蓝牙连接 1 .蓝牙配对    搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对   蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹出配对确认框,点击确认后配对   同样的,如果我们想要配对的设备取消配对 只需要将creatBond改为removeBond 2.蓝牙连接:   配对成功之后,就可以进行蓝牙连接了,蓝牙连接操作比较耗时,可以在一个线程中进行: 调用自己定义的 在这里我们需要注意的是,当连接成功时,我们要让被连接的那部手机也自动跳转到聊天页面,所以我们要开启蓝牙服务端等待设备的连接,当设备连接时,自动跳转页面,蓝牙服务端代码如下: /** * 开启服务端 下篇文章 蓝牙通信:https://blog.csdn.net/huangliniqng/article/details/82189735

    5.3K20发布于 2019-01-10
  • 来自专栏全栈程序员必看

    蓝牙协议详解(蓝牙是什么)

    蓝牙协议分析(1)基本概念  蓝牙4.1,是一个大杂烩:BR/EDR沿用旧的蓝牙规范;LE抄袭802.15.4;AMP直接使用802.11。 1.蓝牙技术的概述 1.1 两种蓝牙技术:经典蓝牙(检称 BT)和低功耗蓝牙(简称BLE)  蓝牙协议包括两种技术:经典蓝牙(简称BT)和低功耗蓝牙(简称BLE)。 因此在硬件模组上又有单模蓝牙和双模蓝牙的区别。在智能手机中的蓝牙就是双模蓝牙,它可以支持经典蓝牙和低功耗蓝牙。 双模蓝牙:支持低功耗蓝牙和经典蓝牙的所有功能 低功耗蓝牙:仅支持低功耗蓝牙不支持经典蓝牙 经典蓝牙: 仅支持经典蓝牙不支持低功耗蓝牙 1.1.1 经典蓝牙(BT): BR技术 、EDR技术 、AMP技术  经典蓝牙是正宗的蓝牙技术。  

    8.6K12编辑于 2022-07-25
  • 来自专栏FreeBuf

    苹果蓝牙追踪器AirTag被破解;28亿iOS用户遭攻击

    本周BUF大事件还是为大家带来了新鲜有趣的安全新闻,苹果蓝牙追踪器AirTag被研究人员破解;国家网信办发布《汽车数据安全管理若干规定(征求意见稿)》;1.28亿iOS用户被攻击,苹果却对此进行隐瞒;工信部通报侵害用户权益行为 内容梗概 苹果蓝牙追踪器AirTag被研究人员破解 上个月苹果发布了名为AirTag的蓝牙追踪器,帮助人们跟踪错放位置的物品。 仅仅过去几天,这款蓝牙追踪器就被德国网络安全研究员Thomas Roth成功破解。 1.28亿iOS用户被攻击,苹果却对此进行隐瞒 近期,Epic Games在跟苹果打官司的过程中提交的一份电子邮件,披露出有史以来最严重的iOS被黑事件。 已知当时受感染的iOS应用有50多个,包括微信、网易、滴滴打车等重要应用,共有 1.28 亿用户下载了带有恶意软件的应用。

    71360发布于 2021-05-20
  • 来自专栏代码男人

    Android蓝牙开发(三)之蓝牙通信

    上篇文章:https://blog.csdn.net/huangliniqng/article/details/82187966 上篇文章我们讲解了,蓝牙配对和蓝牙连接相关知识,还没有了解的朋友可先移步上篇文章 1.蓝牙通信简介   无论是做Java还是Android开发的朋友肯定都比较熟悉Socket的连接,在java中通信用的是Socket,同样的蓝牙之间通信(这里说的是经典蓝牙)方式也是Socket,只不过是 BluetoothSocket,同样的也要有Socket服务端和客户端 2.蓝牙通信消息接收端 设备连接后,跳转到通讯界面,首先我们要在通讯界面开启消息接收端服务,同样的我们要在一个线程中开启 得到bluetooth 文件保存成功")); } } } catch (IOException e) { e.printStackTrace(); } } 3.蓝牙通信发送文本消息 BltContant.SEND_TEXT_SUCCESS)); } catch (IOException e) { e.printStackTrace(); } } 4.蓝牙通信发送文件

    2.7K20发布于 2019-01-10
  • 来自专栏全栈程序员必看

    Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别

    最近在做蓝牙开发,刚接触时傻傻的分不清经典蓝牙和低功耗蓝牙的区别,一直用开发低功耗蓝牙的方法去连接经典蓝牙设备,最后当然是一直连接不上了。在此记录下经典蓝牙和低功耗蓝牙的区别和联系。 Android中的蓝牙 说到Android中的蓝牙,大家听到的可能有蓝牙1.0、蓝牙2.0、蓝牙3.0、蓝牙4.0之类的以数字结尾的蓝牙版本号,而实际上,在最新的标准中,已经不再使用数字版本号作为蓝牙版本的区分了 这里提到的低功耗蓝牙也会有很多人会误解为就是蓝牙4.0,但是完整的蓝牙4.0规范中实际上包括有经典蓝牙和低功耗蓝牙这两个部分,大家看看如下这张分类表就能够明白这其中的关系了。 如表中所述,现在的蓝牙实际上分为了三类:单模、双模和经典。那么,最官方的蓝牙版本称呼就是,单模蓝牙、双模蓝牙和经典蓝牙。 在这其中,最前沿的当属单模蓝牙了,也就是低功耗蓝牙。 这个蓝牙标准和经典蓝牙区别极大,在最初甚至考虑过加入WIFI阵营,但是因为蓝牙阵营这边条件较为优厚(比如授权费用极低)才并入了蓝牙标准。 那么,低功耗蓝牙和经典蓝牙的区别究竟在哪里呢?

    6.2K21编辑于 2022-07-05
  • 来自专栏Android开发者家园

    Android 蓝牙开发(2)——低功耗蓝牙

    低功耗蓝牙官方文档 本文章是参考官网,然后加入自己实践中的理解完成!没有看上一篇的读者,可以先阅读一下前一篇,这是一个系列。 (API 18 )引入了低功耗蓝牙,应用可以查询周围设备、查询设备的服务、传输信息。 目前所有低功耗应用配置文件基本都是基于 GATT Bluetooth SIG (蓝牙技术联盟) 是为低功耗设备定义了许多配置文件。配置文件是设备在特定应用程序中的工作方式的规范。 确定了两个设备建立连接后如何进行相互通信 BLE 权限 应用在使用蓝牙设备的时候必须要声明蓝牙权限 BLUETOOTH 需要这个权限才可以进行蓝牙通信,例如:请求连接、接受连接、和传输数据。 如果还需要发现或者操作蓝牙设置,则需要声明 BLUETOOTH_ADMIN 权限。使用这个权限的前提是要有 BLUETOOTH 权限。

    3.1K10发布于 2019-12-26
领券