蓝牙,WiFi(一)

来源:互联网 发布:怎么挖淘宝客户的快递 编辑:程序博客网 时间:2024/04/26 12:54

IOS蓝牙,WiFi开发

最近工作刚好有涉及到和蓝牙相关方面的开发研究,便也去仔细的琢磨了解了下ios的蓝牙。写的不是过多技术性的,更多是口水话聊聊在琢磨蓝牙开发时所涉及到的问题吧,不喜还请见谅。整理的相关内容如下。

开发场景

研发的场景环境为,在人员密集的地方实现上网,网络支付等。因为人员过于密集,所以手机通常是无法上网的。WiFi的布置需要电源,在一些特定的地方也是无法让你想在哪就在哪牵线安路由。所以只能从手机端考虑下手。要实现的原理有点类似于国外应用fireChat,利用蓝牙和WiFi进行的聊天。

研发思路

  1. 用手机端的个人热点,进行WiFi连接并形成一个主干局域网,所有的人都可以通过WiFi连接进入到这个主干网中。只要主干网中有能上网的,则其它连接的设备都可直接通过热点上网。
  2. 用蓝牙建立局域网,然后由蓝牙进行设备间的数据传递实现无网络情况下信息交互,传递到某个可以上网的设备端间接实现上网。

一.手机端布局个人热点

手机端开启WiFi个人热点后,别的设备在连接此WiFi热点后便可直接上网。单独提一下,只能使用手机网络进行WiFi热点的分享,即你不能在连接WiFi的情况下又同时开启WiFi热点。只要开启了WiFi热点,手机连接的WiFi便会断开。
Android端的WiFi可以进行开发,即可以在开发的应用中搜索指定的WiFi并进行连接或断开等操作,ios的WiFi就比较尿性了。

  1. ios开启设置中的个人热点时可以选择是否支持WiFi分享,蓝牙分享等,当你第一次开启个人热点时便会提示。当你用iPhone开启个人热点并选择支持WiFi,蓝牙分享时。Android和iPhone都只可以搜索到你开启的WiFi热点,只能用WiFi连接,无法搜索到蓝牙。但是iPad和mac倒是可以用蓝牙进行连接。
  2. ios无法进行WiFi 开发,只可以检测当前连接的WiFi的ssid(服务集标识,即WiFi名),然后任何操作都不可进行了。即你无法搜索附近的WiFi,更无法连接指定的WiFi或断开等。appStore上有WiFi万能钥匙,可以搜索附近的WiFi热点,使用的思路其实是利用GPS定位。当你开启了应用后,上传服务器你当前的地址,服务器会返回你当前位置附近的WiFi有哪些。如果需要连接,则会跳转到iPhone设置中的WiFi连接界面手动进行连接。
    早期ios4,5的时候倒是有sdk可以进行搜索附近的蓝牙功能,网上也能搜索到,但ios5过后就不可用了。
    到了ios8的时候甚至当你连接WiFi的时候,你的mac地址都是随机变化的,别人无法通过mac地址来标记你,实现保护你的隐私。其实我也是非常的不懂怎么就和隐私有关,了解了下。应用场景有如下。商城有提供免费的WiFi,当你进入商城并连接了商城的WiFi后,便可标记你的信息。商城的WiFi一直处于扫描状态,只要你一旦进入商城,WiFi扫描到你的手机后,便可记录你来商城的时间,频率等等。当我查到此时,也颇为惊讶,当真是信息时代,无处不统计,无处不记录啊。

iOS的个人热点基本就没有继续研究下去的必要了,毕竟苹果不让你搞,你就只能干瞪着眼不是。

二.蓝牙连接

ios的蓝牙开发框架有几个,但总结下来只有两种,即可以和不可以与Android等非ios应用进行蓝牙连接进行数据交换两种。
先说下ios的蓝牙情况,因为苹果即卖硬件又卖软件,音像版权等,所以苹果是不会让你在应用里随便进行文件传输的。音乐基本只能在iTunes下载,如果你在iTunes上下载了,又用蓝牙分享给别人就又得扯到版权等了,凡此种种吧。所以ios的文件管理功能是非常让人恼火的,想要像安卓那样想把文件放哪就放哪就别指望了。
1.ios有airdrop,允许你在特定的几个应用间进行文件传输。iPhone开启蓝牙,其他的iPhone是无法搜索到的,Android倒是可以搜索到iPhone的蓝牙,不过无法连接。iPhone无法搜索到安卓开启的蓝牙。
2.蓝牙分为高速蓝牙和低功耗蓝牙以及普通蓝牙。现在常说的蓝牙4.0便是这三种蓝牙功能的集合。也就是说蓝牙4.0下面有这三种模式可以让你进行选择切换。
3.ios的高速蓝牙(蓝牙2.0)只能实现ios和ios之间应用的连接(只能是相同的应用,或是自己开发的应用,这个后续会继续讲)
4.蓝牙4.0可以实现和Android的通信连接,不过苹果只开放了蓝牙4.0的低功耗模块,用于和穿戴设备进行信息传递。所谓低功耗指就是极度省电,但传输数据非常慢,是按k来算的。多是用来开发智能家居,手环等。

总结:

一.个人热点

  1. 安卓开放的个人热点
    1. iPhone可以连接安卓的WiFi热点,但iPhone无法对WiFi进行操作,只能使用系统内置WiFi连接,即无法控制选择WiFi的连接与断开操作等
    2. iPhone无法搜索安卓提供的蓝牙热点
  2. iPhone开放的个人热点
    1. 安卓可以以蓝牙形式连接iPhone开放的热点
    2. iPhone与iPhone间只可以自动通过WiFi形式连接个人热点,iPhone开启的蓝牙iPhone搜索不到。iPhone与iPad,iMac直接可以用蓝牙形式连接热点,同样为系统内置功能,无法进行操作。

二.蓝牙

  1. 蓝牙2.0(高速蓝牙)
    1. 安卓可以搜索到iPhone的蓝牙,无法连接。
    2. iPhone无法搜索到安卓的蓝牙
    3. 能实现的蓝牙2.0连接仅供ios设备自己开发的应用进行搜索与连接。理论可实现一个设备可以同时被8个设备连接,并能同时再去连接8个设备,共16个设备左右。基于设备数量有限,现在只测试了一个设备在被别的蓝牙连接的同时再去连接一个蓝牙,可以选择性的断开与某个蓝牙的连接,可以自动搜索附近蓝牙设备并自动进行连接
    4. iPhone的蓝牙2.0连接实现是以广播,接收的会话方式进行消息传递,异步的连接,暂无法实现网络请求的透传,实现蓝牙热点的开发。
  2. 蓝牙4.0BLE(低功耗蓝牙)
    1. iPhone仅可以使用蓝牙4.0的低功耗模块,可以实现和安卓的相互连接(iPhone需要iPhone4s以上,安卓需要4.5系统以上,才有ble功能)
    2. 每次的发送数据不能超过20个字节
    3. 转发速率最快4K/S,可稳定工作在2.8K/S
0 0