蓝牙

Android打开蓝牙的两种方式

南笙酒味 提交于 2019-12-06 19:47:24
隐式打开方式 关键API使用如下: if ( !bluetoothAdapter.isEnabled()) { boolean res = bluetoothAdapter.enable(); } 完整判断逻辑如下: bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter == null) { Log.e(TAG, "--------------- 不支持蓝牙"); return; } if ( !bluetoothAdapter.isEnabled()) { boolean res = bluetoothAdapter.enable(); if (res == true) { myBtResultCallback.showToastMsg("蓝牙打开成功"); } else { myBtResultCallback.showToastMsg("蓝牙打开失败"); } } else if (bluetoothAdapter != null && bluetoothAdapter.isEnabled()) { myBtResultCallback.showToastMsg("蓝牙已打开"); } else { myBtResultCallback.showToastMsg(

PHY6202 蓝牙4.0NRF51802

大兔子大兔子 提交于 2019-12-06 12:27:04
PHY6202可以替代NRF51802/NRF51822的 虽然PHY6202是蓝牙4.0,但它同时可是使用5.0的软件进行组网 PHY6202 M0内核,封装:QFN48/32 基本参数: ARM CORTEX M0 32BIT 48mhz QFN48 FLASH:512KB ROM 128K 33I/O QFN32 FLASH:256KB ROM 128K 19I/0 SRAM 138K 1Mbps -97dbm 125kb -103dbm 1. 128K的协议栈直接固化在芯片里面,NORDIC需要自己做; 2. 单引脚天线(单端天线),直接接电阻就到天线; 3. 烧录方式:JTAG,直接用串口烧录,串口调试和烧录,批量生产时可为客户提供脱机烧录的设备; 4. 烧录界面: 6th.(TM脚) 烧录时需要拉高,选好烧录文件,将之前烧录文件清除再重新烧入新的程序,烧录完要拉低; 5. 脚位不兼容NRF51和NRF52832,需要用户重新画板; 6. 应用领域: 手环 ibeacon 遥控器 智能家居 透传模块(低成本) 防丢器(低成本) 7. 没有NFC功能; 8. 相较国内同系列厂家性能更稳定:泰凌微、汉天下、南方硅谷等 9. QDID号:D038925 应用广泛: 智能家居 智能手环 游戏手柄 MESH组网 来源: https://www.cnblogs.com

蓝牙BLE: 蓝牙(BLE)协议栈

随声附和 提交于 2019-12-06 12:18:21
蓝牙协议是通信协议的一种,一般而言,我们把某个协议的实现代码称为协议栈(protocol stack), BLE协议栈就是实现低功耗蓝牙协议的代码 ,理解和掌握BLE协议是实现BLE协议栈的前提。当前的蓝牙协议分为基础率/增强数据率(BR/EDR)和低耗能(LE)两种技术类型,本文将重点介绍BLE(Bluetooth Low Energy)。 1、BLE低功耗蓝牙协议栈框架 要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的应用。可以看出BLE协议栈是连接芯片和应用的桥梁,是实现整个BLE应用的关键。那BLE协议栈具体包含哪些功能呢?简单来说,BLE协议栈 主要用来对你的应用数据进行层层封包,以生成一个满足BLE协议的空中数据包,也就是说,把应用数据包裹在一系列的帧头(header)和帧尾(tail)中 。 蓝牙协议规定了两个层次的协议,分别为蓝牙核心协议(Bluetooth Core)和蓝牙应用层协议(Bluetooth Application)。蓝牙核心协议关注对蓝牙核心技术的描述和规范,它只提供基础的机制,并不关心如何使用这些机制;蓝牙应用层协议,是在蓝牙核心协议的基础上,根据具体的应用需求,百花齐放,定义出各种各样的策略,如FTP、文件传输、局域网等等。 而蓝牙核心协议(Bluetooth Core

蓝牙遐想

陌路散爱 提交于 2019-12-06 11:55:58
  关于蓝牙-Bluetooth的命名来源,相信不知道的人大概都充满好奇。的确,我也是,隐约记得10多年前大一那会,计算机基础老师,给大家介绍蓝牙。 我天,阶梯教室的讲台上大布幕上放着一个蓝色的骷髅,牙齿很整齐漂亮,充满蓝光!直译过来,真的就是blue tooth,哈哈。其实到后来通过自身学习 才搞明白,真正蓝牙来源的是统一了丹麦、挪威的一个国王的牙以及他的名字,他的牙齿坏了,补了牙,想想几千年前,补牙技术多烂,导致牙齿发黑、发灰导致有种淡淡的 蓝色,估计一张开还一股臭味,不可能像我们课堂上那么整齐漂亮的。大家感兴趣可以去搜搜蓝牙名字来源,还是挺逗的。到后面还是无意中,并且预先 指定的技术名字,被人抢先用了,才让蓝牙一词登上舞台……是不是觉得冥冥之中有种注定。   我一直坚信一个观念——技术的发明来源于需求。人类需求离不开衣食住行,几千年的历史,所以活动都围绕这四大需求展开,大到战争、侵略、抗战、技术革命,小到上学 、打工、结婚生子、买房买车。历史的车轮是不停前进的,哪怕中间有偶尔的循环曲折,但大的方向依旧不变。到了近代社会,随着玻璃的发明,所有科技爆发式提升。最后以计算机的 出现,打开现代科学的帷幕,其历史价值丝毫不亚于猿猴从树上下来,直立行走。懂一些现代科学的人其实都很好奇,人类科技为什么在近200年就疯了一般发展,我相信大概就是玻璃 的产生,大家也可以想象,哪个新研究

雷柏双模鼠标配对

瘦欲@ 提交于 2019-12-06 09:47:42
之前买了一个雷柏的双模鼠标,自带蓝牙,说明书找不到了,重置系统后折腾了很久没配对成功,后面搜索了对应的资料成功了,记录如下: 1、 将鼠标背面的蓝牙开关拨到“ON”状态; 2、将鼠标背面的蓝牙按钮长按3秒以上,直至鼠标正面滚轮处的红灯有规律地一闪一闪。 3、 重新打开Windows蓝牙搜索界面,发现有RAPOOBleMouse和RAPOO BT3.0 Mouse这两个蓝牙外设,此时选择任意一个配对即可,第一个是蓝牙4.0,第二个是蓝牙3.0,选第二个就很稳定,不会出现关了鼠标再开就连接不上的情况。 以上内容来自网络:https://club.huawei.com/thread-18585253-1-1.html 来源: https://my.oschina.net/u/4082616/blog/3136762

移动端测试之 - appium连接小米手机

北战南征 提交于 2019-12-06 04:41:28
Before 这里以小米手机5S MIUI10.2.2.0稳定版为例。将手机连接上电脑。 开启USB调试 默认的,MIUI稳定版是关闭开发者选项的,想要打开,需要打开 设置 ▶ 我的设备 ▶ 全部参数 ,连续点击5次 MIUI版本 ,即可解锁开发者选项模式。 由于我的手机已经处于开发者模式了,所以,我的提示是 您已处于开发者模式,无需进行此操作 。 接下来, 设置 ▶ 更多设置 ▶ 开发者选项 ,按照下图开启相关功能。出现提示选择确认即可。 电脑端会安装一些驱动软件,有点慢,喝杯咖啡吧。 完事之后,我们在电脑终端查看设备: C:\Users\Anthony>adb devices List of devices attached adb server version (39) doesn't match this client (36); killing... * daemon started successfully * f8642f91 unauthorized 有了设备(上例中的 f8642f91)就好办了,我们依然让appium监听 127.0.0.1:4723 ,然后编辑Python代码: import time from appium import webdriver desired_caps = { "platformName": "Android",

蓝牙开发 获取mac地址

折月煮酒 提交于 2019-12-06 03:43:05
苹果在原生的CoreBluetooth中,将设备的Mac进行了封装(通过外设的Mac地址和手机的Mac地址进行了加密计算),最后对外提供了一个UUID,在一台手机上,一般情况,UUID就可以作为这个外设的唯一标识了,但是如果换了一台手机的话,可能就会发生变化,所以如果需求是需要在多台手机上的话,UUID可能就不太实用了。 蓝牙的Mac地址可以加到蓝牙的广播包里,但是这样的话对硬件来说负担很大而且芯片也不稳定,也可以将蓝牙的Mac地址写在蓝牙设备系统的sevrice 里 。我们的需求是在通过Mac地址连接蓝牙设备,所以必须在连接蓝牙之前获取蓝牙的Mac地址。 通过广播包获取Mac地址 - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral * 大专栏 蓝牙开发 获取mac地址)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 在这个代理方法我们可以拿到一个advertisementData,这个字典类型的就是广播包,这里面会有一些设备的属性,比如设备的名字啊,服务等

基于物联网平台开发手机混合 App

三世轮回 提交于 2019-12-05 23:44:01
摘要: 本节内容简单地介绍了如何结合现有的物联网平台去开发一个手机应用程序,在上面展示数据、控制设备,并且还介绍了怎样用蓝牙去和设备通信。 手机应用与Web应用开发有很多的相似之处,它们都是调用一些接口,然后渲染出页面。 原生应用。原生应用是指专为特定操作系统开发的应用。这些应用可以直接访问手机的所有功能,如摄像头、蓝牙、WiFi等。这些应用通常速度更快、性能更好。由于其直接访问系统的API,因此性能上与混合应用相比会更好。但是这里有一个问题—需要支持开发的设备太多,开发成本由此升了上去。 Web应用。Web应用是指运行于浏览器上的应用。Web应用就不存在开发成本高的问题,一次开发就可以在桌面、移动浏览器上运行。然而,Web应用对网速的要求比较高,并且与原生应用相比,用户体验不好。尽管HTML 5可以解决一些问题,但是这些问题还是很明显。 混合应用。混合应用是原生应用和Web应用的结合体。从技术的角度来说,混合应用就是调用浏览器,即WebView,来运行Web代码。而它不仅仅是Web应用的离线版,它还可以通过一些框架,如Cordova,直接调用系统的API。在一些框架中,它甚至可以用封装系统的UI组件,以Web常用的形式来提供API。而在混合应用框架中,可能并没有包含所有的功能,这时候就需要自己去实现。 选择哪种应用来作为用户界面,应该取决于是否有充足的时间、精力和人员

如何实现android蓝牙开发 自动配对连接,并不弹出提示框

久未见 提交于 2019-12-05 11:48:12
如何实现android蓝牙开发 自动配对连接,并不弹出提示框 之前做一个android版的蓝牙,遇到最大的难题就是自动配对. 上网查资料说是用反射createBond()和setPin(),但测试时进行配对还是会出现提示,但配对是成功了 我就开始查找怎么关闭这个蓝牙配对提示框,后面还是伟大的android源码帮助了我。 在源码 BluetoothDevice 类中还有两个隐藏方法 cancelBondProcess()和cancelPairingUserInput() 这两个方法一个是取消配对进程一个是取消用户输入 下面是自动配对的代码 Mainfest,xml注册 <receiver android:name=".BluetoothConnectActivityReceiver" > <intent-filter> <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" /> </intent-filter> </receiver> 自己在收到广播时处理并将预先输入的密码设置进去 public class BluetoothConnectActivityReceiver extends BroadcastReceiver { String strPsw = "0"; @Override