android蓝牙开发

蓝牙设备

倾然丶 夕夏残阳落幕 提交于 2020-03-17 08:11:47
一、标注   转载自: http://www.cnblogs.com/cxcco/archive/2012/01/15/2322783.html ,尊重原创! 二、正文   蓝牙是啥我就不再说了,因为我肯定解释不清楚蓝牙是啥,有兴趣请移步至 百度百科 。   在开始前我们需要准备好一部手机而不是模拟器,且手机已经打开调试模式并连接到电脑上。文中的本地设备均指我们自己的手机,而远程设备则是指其他的设备(电脑、其他手机或者其他)。   通常情况下,我们对蓝牙的操作主要有:开启和关闭蓝牙、搜索周边设备、能被周边设备所发现、获取配对设备、蓝牙设备间的数据传输。   1、打开蓝牙(当然首先要确保你的手机是有蓝牙设备的)   蓝牙设备主要分为两部分,一部分为本地设备,另一部分为远程设备。 BluetoothAdapter——本地设备,对蓝牙操作首先就需要有一个BluetoothAdapter实例。常用的几个方法如下:   cancelDiscovery()——取消本地蓝牙设备的搜索操作,如果本地设备正在进行搜索,那么调用该方法后将停止搜索操作。   Disable()——关闭蓝牙设备。   Enable()——打开蓝牙设备。相信大家都有过打开蓝牙的经历,一般情况下都会弹出一个窗口,说正在请求打开蓝牙设备,你是不是允许云云。   getAddress()——获取蓝牙设备的MAC地址。  

Android蓝牙聊天,蓝牙通讯

﹥>﹥吖頭↗ 提交于 2020-03-17 08:10:40
由于近期开发Android相关的东西,借鉴了一些源码和别人的博客,现将Android蓝牙通信方式在这里总结一下,以下是以一个蓝牙客户端和服务端实现的例子来给大家讲解一下。 1. 使用蓝牙的响应权限 2. 配置本机蓝牙模块 在这里首先要了解对蓝牙操作一个核心类BluetoothAdapter BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); //直接打开系统的蓝牙设置面板 Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(intent, 0x1); //直接打开蓝牙 adapter.enable(); //关闭蓝牙 adapter.disable(); //打开本机的蓝牙发现功能(默认打开120秒,可以将时间最多延长至300秒) discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);//设置持续时间(最多300秒)Intent discoveryIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE)

Android 蓝牙(Bluetooth)(一)

三世轮回 提交于 2020-03-17 08:08:52
Android 对于蓝牙开发从 2.0 版本的 sdk 才开始支持 Bluetoothadapter ,蓝牙开发从4.3版本的sdk才开始支持 BluetoothManager ( Bluetoothgatt) Android 蓝牙(Bluetooth)(二) 学友资料: Android蓝牙开发浅谈 http://www.eoeandroid.com/thread-18993-1-1.html 首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限 <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permissionandroid:name="android.permission.BLUETOOTH" /> 以下是 Bluetoothadapter开发方法: 1.获取本地蓝牙适配器 BluetoothAdapter mAdapter= BluetoothAdapter.getDefaultAdapter(); 2.打开蓝牙 if (!mAdapter.isEnabled()) { // 弹出对话框提示用户是后打开 Intent enabler = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

Windows 8.1 低功耗蓝牙开发

限于喜欢 提交于 2020-03-17 08:00:10
1. 概述 在蓝牙4.0发布以前,给大家的直观印象就是蓝牙耳机,它就是用来满足短距离内中等带宽的音频通信需求。然而蓝牙4.0发布之后,用途就大不一样了,特别是现在物联网和可穿戴之风盛行的年代,很多小玩意都使用了它,如心率计、手环、钥匙扣等等物件,最终它能够和用户的手机、Pad以及PC等设备连接,实现五花八门的功能。为什么蓝牙4.0的用途广泛了呢?首先归功于低功耗,运行Bluetooth Low Energy的设备,一节纽扣电池可以支持其半年的时间;其次是低成本,如TI公司的CC2540蓝牙SoC售价是1美元。自iOS和Android支持蓝牙4.0 BLE以后,在今年4月份微软的BUILD 2014大会上,终于官方宣布在Windows 8.1和Windows Phone 8.1中支持蓝牙4.0 BLE,值得注意的是,目前为止,Windows 8.1 只支持GATT Client模式,而不支持GATT Server模式。下面我们就一起来了解一下如何在Windows 8.1平台上开发蓝牙 4.0 BLE的应用。 2. 设备 首先是配有蓝牙4.0的Windows 8.1系统的PC或者平板,以Surface Pro 2为例,可以打开“设备管理器”->蓝牙,查看下面的列表,如果里面有“Microsoft Bluetooth LE 枚举器”的话,如下图1所示,就说明是支持蓝牙4.0 LE的

扫盲篇之您的手机如何与蓝牙Mesh节点通信

末鹿安然 提交于 2020-02-22 13:58:57
概述 与Zigbee、Thread等其他MESH组网技术相比,蓝牙Mesh能够在不需要额外硬件成本的前提下实现手机与蓝牙Mesh节点的通信,无疑是一个巨大的优势,因此本文将着重讲解手机是如何与蓝牙Mesh设备通信的,希望给读者以清晰的理解。 手机软硬件 手机软硬件的设计问题决定了蓝牙Mesh节点与手机通讯的方式,这是问题的出发点,因此本文将从手机的软硬件讲起,一步步洞悉其全貌。 硬件 现在的智能手机,不管是苹果或其他众多安卓厂家,蓝牙无疑都是手机标配,在笔者书写本文时,蓝牙已经演变到5·2版本,当然受限于整个供应链的问题,手机上携带的蓝牙版本目前还没有到最新版本,目前市场上蓝牙版本的分布以4-2和5-0为主,而蓝牙Mesh所要求的是蓝牙版本在4-0及其以上即可,因此,读者不必担心手机的硬件约束问题。另外,需要科普的是,从蓝牙4-0开始,蓝牙实际开始走两条路线:传统路线(Classic BT)也就是所谓的经典蓝牙,这种蓝牙通常注重于数据的高速传输,例如:蓝牙耳机,蓝牙音响等,第二条路线(Low Energy)低功耗蓝牙,该类型的蓝牙注重于功耗的低耗,例如:智能手环,智能锁等。相对于手机来说,一般都是集成这两类,我们称之为双模蓝牙。对于蓝牙音响一般都是单纯的经典蓝牙以及智能手环一般都是单纯的低功耗蓝牙,我们将这些分类为单模蓝牙

蓝牙攻击-基础篇

天大地大妈咪最大 提交于 2020-02-11 03:02:16
记得前阵子有一个高中生在老师上课的时候黑了教学的电脑,播放的黄色视屏。其实用的就是这个蓝牙攻击技术。 转载自: https://mp.weixin.qq.com/s?__biz=MzI5NzU0MjgzNA==&mid=2247483652&idx=1&sn=b35eeee89a80b25f9efa62727ca9b531&chksm=ecb234d9dbc5bdcf2ba8a5d07eace4f62198f05d91a794698bb139b670ebbbfe1610ef523f51&mpshare=1&scene=23&srcid=0409A9BN19cV5sqnB5qQqyWh#rd 背景 刚接触蓝牙,于是玩了那么一下下,现在分享出来,希望能与大家一起学习 先来了解蓝牙哈 (¯▽¯)~(如果哪里错啦,希望大大萌轻点打~(>﹏<)~) 初次相识 蓝牙是一种低功率,近场通信的通用协议,工作在2.4 – 2.485 GHz,使用扩展频谱,每秒1600跳频(频率每秒改变1600次) 跳频了解: http://baike.baidu.com/link?url=0cwODpHwtIpYPP9v1mqnGQrtIfuWwUqhjl5xlXxcwKxI_ga3LwLWrIgkxkv9ZdUX 蓝牙范围最小规格为10米,但是制造商在其设备中实现的范围是没有限制(例如加入些放大器)

BLE MESH 学习[1] - ESP32 篇

无人久伴 提交于 2020-02-04 19:04:29
BLE MESH 学习 BLE MESH 是一种蓝牙(n:m)组网的技术。 本篇先介绍 BLE MESH 到使用 ESP32 的官方示例对其进行学习讲解。 后面会进一步学习 SIG 的 BLE MESH 协议和架构,以及 RTL8762C 使用。 一、 BLE 和 经典蓝牙简介 1.1 SIG 简介 蓝牙技术现如今由蓝牙技术联盟(Bluetooth special interest group,简称Bluetooth SIG)制定,后面称 SIG。SIG 负责发布维护蓝牙的通信规格和标准。 1.2 BLE 的诞生 SIG 在 2010 年发布了蓝牙4.0,第一次引入的 LE(Low Energy)模式,到后来 2014年发布蓝牙4.2 ,2016 年发布蓝牙5.0。其中 LE 模式常被称为 BLE (Bluetooth Low Energy,蓝牙低功耗)。 在蓝牙4.0 规格中,SIG 定义了四种蓝牙 controller 技术:BR,EDR,AMP 和LE,也就是说,蓝牙只有一种蓝牙,那就是 SIG 的蓝牙,而蓝牙技术本身包含四种类型:BR,EDR,AM 和 LE。 其中 LE 技术就是面向更低成本和功率消耗应用的,在物联网有更好的应用。相反地其他 BR、EDR、AM 等经典技术也就合称为经典蓝牙(BT)。 1.3 BLE 和经典蓝牙应用

Android蓝牙A2DP连接实现

守給你的承諾、 提交于 2020-01-17 01:55:28
代码地址如下: http://www.demodashi.com/demo/14624.html 开发环境: 开发工具:Androidstudio 适配机型:honor8(Android6.0), 坚果R1(Android8.0) 开发功能:Android中蓝牙连接A2DP设备,蓝牙耳机设备 功能实现: 本应用提供以下功能: 第一:开启蓝牙 第二:查找过滤掉A2DP设备 第三:连接A2DP设备 第四:断开连接A2DP设备 第五:保存通过本应用连接的A2DP设备 第六:当重新启动应用时加载已连接的设备 A2dp介绍 A2DP全名是Advanced Audio Distribution Profile 蓝牙音频传输模型协定。 A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度。然而并非支持A2DP的耳机就是蓝牙立体声耳机,立体声实现的基本要求是双声道,所以单声道的蓝牙耳机是不能实现立体声的。声音能达到44.1kHz,一般的耳机只能达到8kHz。如果手机支持蓝牙,只要装载A2DP协议,就能使用A2DP耳机了。还有消费者看到技术参数提到蓝牙V1.0 V1.1 V1.2 V2.0——这些是指蓝牙的技术版本,是指通过蓝牙传输的速度,他们是否支持A2DP具体要看蓝牙产品制造商是否使用这个技术 代码介绍 代码结构如下 本应用共包含五个java文件: Constants:常量值定义文件

Android 蓝牙开发(1)

ぐ巨炮叔叔 提交于 2019-12-31 19:14:34
普通蓝牙设备官方文档 Android 平台包含蓝牙网络堆栈支持 ,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据。应用框架提供了通过 Android Bluetooth API 访问蓝牙功能的途径。使用 Bluetooth API Android 应用可以执行下面的操作: 扫描其他蓝牙设备 查询本地蓝牙适配器的配对蓝牙设备 建立 RFCOMM 通道 通过服务发现连接到其他设备 与其他设备进行双向数据传输 管理多个连接 传统蓝牙适用于电池使用强度较大的操作,例如 Android 设备之间的流传输和通信等。针对具有低功耗要求的蓝牙设备,Android 4.3(API 18)中引入了面向低功耗蓝牙的 API 支持。 基础知识 使用 Android Bluetooth API 来完成使用蓝牙进行通信的四项主要任务: 设置蓝牙 、 查找局部区域内的配对设备 或可用设备、 连接设备 ,以及在 设备之间传输数据 。 关于蓝牙的 API 在 android.bluetooth 包中,下面介绍一下和蓝牙相关的主要类 BluetoothAdapter 本地蓝牙适配器,是所有 蓝牙交互的入口点 ,表示蓝牙设备自身的一个蓝牙设备适配器, 整个系统只有一个蓝牙适配器 。通过它可以发现其他蓝牙设备,查询绑定(配对)设备的列表,使用已知的 Mac 地址实例化 BluetoothDevice 以及创建

实现Android和PC之间的蓝牙通信

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-25 21:36:09
这两天想实现PC和安卓手机的通信,限于水平,知道的方法大概有两种:基于数据包的socket和蓝牙。虽然看起来简单,但调也调了两天多。自己测试了下socket,在室内WIFI环境下时延大概是0.1s。而在3G网络下时延居然达3s之多,而且只要不发数据,端口貌似就会断掉,总之,很不爽。于是,便考虑了蓝牙的方法。   实现手机和PC的蓝牙通信,一种是最常用的蓝牙虚拟串口,这种方法可以通过配置非常简单地实现,很多外置蓝牙GPS都用这种做法。但大名鼎鼎的安卓却不支持,因此对大部分外置GPS都不提供支持(可能安卓手机大部分包含内置GPS,觉得外置的太鸡肋了)。因此必须采用第二种,蓝牙socket。 在电脑上,实在不想去在C++下开发,于是便寻找.NET组件,但实际上微软的NET库中不支持蓝牙,因此必须采用第三方的控件,名字叫inthehand. 这篇文章中详细的介绍了inthehan d组件, http://www.cnblogs.com/procoder/archive/2009/09/22/1571580.html 。由于它讨论了实现文件传输的思路,我们在这篇文章中就只讨论简单的字符传输。 它的官方网站是inthehand.net,其中多数的类库和方法都能找到。  下面是手机端的初始化代码。其中的具体含义可参照 http://android.tgbus.com/Android