首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android蓝牙通信之搜索蓝牙设备

一:注意事项 1:android6.0使用蓝牙时,需要开启gps定位权限,不然无法搜索其它蓝牙设备。 二:权限 1:权限配置 <!...--允许程序连接到已配对的蓝牙设备-- <uses-permission android:name="android.permission.BLUETOOTH" / <!...,如下图,但我想实现的是,匹配其中一方,不能手动点击配对,因为发起蓝牙连接的设备android设备,是不能触摸的,所以就要通过程序来解决这个问题,特别声明:(测试的android设备,版本为5.x,并且已经...,以及动态权限,蓝牙的打开,关闭,搜索,以及自动配对(特别声明:(自动配对的android设备,版本为5.x,并且已经root,没有root的设备,或者不是android5.x不清楚能否实现自动匹配,因为我只有这个测试设备...demo代码下载:github 总结 以上所述是小编给大家介绍的Android蓝牙通信之搜索蓝牙设备,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

3K31

Android蓝牙开发教程(一)——搜索蓝牙设备

Android蓝牙功能的开发一直是很多新手头疼的问题,网上虽然也有很多教程贴,但大多都写得不全面,不能让我们真正掌握蓝牙开发的基本知识。...本教程主要讲解搜索蓝牙设备蓝牙设备之间的连接和蓝牙之间的通讯三个主要模块。掌握了这三个,基本就能进行简单的蓝牙开发了。 先上效果图 界面比较简单。主要有三个按钮,两个文本和一个列表。...要用到蓝牙的功能,需要先在manifest中声明一下蓝牙的使用权限 ...="android.permission.ACCESS_COARSE_LOCATION"/> 打开蓝牙设备 BluetoothAdapter bTAdatper = BluetoothAdapter.getDefaultAdapter...欢迎继续阅读下一篇 Android蓝牙开发教程(二)——连接蓝牙设备 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159847.html原文链接:https://

4.5K40
您找到你想要的搜索结果了吗?
是的
没有找到

Android BLE 蓝牙开发,连接蓝牙设备进行通讯

针对低功耗蓝牙通讯,Android 4.3(API 18)开始引入了 BLE 库。我们可以直接使用 Android SDK 中的蓝牙 BLE 库,而不用额外导入依赖库。...那么我们将会无法发现蓝牙设备。 也就是执行蓝牙扫描 API 无法得到任何结果(PS::Logcat 中的错误日志会告诉你,要开启位置权限,否则无法扫描发现蓝牙设备)。 其中 android.permission.ACCESS_FINE_LOCATION 是高版本API 28 权限。...需要申请:权限 而上面两个权限呢,是在 API 31 上才有效...否则会出现无法扫描到设备,没有任何扫描结果等等情况。因为扫描是一个耗时耗电的操作。 3.6 链接Gatt 当我们扫描到了蓝牙设备之后,就会获取到BluetoothDevice对象。

2.5K20

Android蓝牙开发(一)之打开蓝牙设备搜索

Android蓝牙开发系列目录: https://blog.csdn.net/huangliniqng/article/details/82185635 一、判断是否系统是否支持蓝牙 在使用蓝牙之前,...我们首先要判断手机设备是否支持蓝牙,虽然现在基本都支持蓝牙了,但是为了代码的严谨性我们还是需要在代码中判断: private BluetoothManager bluetoothmanger; private...BluetoothAdapter bluetoothadapter; /**   判断设备是否支持蓝牙 */ bluetoothmanger = (BluetoothManager) getSystemService...,此外我们还需要注册蓝牙广播,当扫描到设备时才方便做处理 设置蓝牙广播过滤器也就是添加广播类型,在这里我们把蓝牙状态改变、搜索到设备、搜索完成等广播都添加进来,后续都可以用到 /** * 蓝牙广播过滤器..." />、 这些权限是都可以用到的,Android5.0以上要添加定位权限才可以,所以最后两项是定位权限,在扫描的时候,Android6.0以上的手机记得动态申请权限才可以扫描到设备,动态权限文章推荐AndroidAcp

2.2K21

Android实现蓝牙(BlueTooth)设备检测连接

为了解决这种邻近传输文件的问题,蓝牙技术应运而生。蓝牙技术是一种无线技术标准,可实现设备之间的短距离数据交换。...Android蓝牙技术提供了4个工具类,分别是蓝牙适配器BluetoothAdapter、蓝牙设备BluetoothDevice、蓝牙服务端套接字BluetoothServerSocket和蓝牙客户端套接字...:开始搜索周围的蓝牙设备; cancelDiscovery:取消搜索操作; isDiscovering:判断当前是否正在搜索设备; getBondedDevices:获取已绑定的设备列表; setName...:设置本机的蓝牙名称; getName:获取本机的蓝牙名称; getAddress:获取本机的蓝牙地址; getRemoteDevice:根据蓝牙地址获取远程的蓝牙设备; getState:获取本地蓝牙适配器的状态...蓝牙设备BluetoothDevice BluetoothDevice用于指代某个蓝牙设备,通常表示对方设备。BluetoothAdapter管理的是本机蓝牙设备

2.8K30

Android 蓝牙开发(扫描设备、绑定、解绑)

前言 公司最近给我丢了一个蓝牙开发的项目,不了解怎么办呢,那当然是从最基础的开始了,所以这里相当于做笔记了。 效果图 打开蓝牙 ? 扫描蓝牙设备 ? 看了效果图,你想不想自己试一下呢?...if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //开发版 7.7.13 及以后版本采用了系统API...rv;//蓝牙设备展示列表 private BluetoothReceiver bluetoothReceiver;//蓝牙广播接收器 private RxPermissions rxPermissions...= null) {//是否支持蓝牙 if (bluetoothAdapter.isEnabled()) {//打开 //开始扫描周围的蓝牙设备...通过上面的代码,我们已经实现了点击扫描时,如果蓝牙已打开则扫描周边蓝牙设备,但是扫描的结果呢?这时你有没有想到我们之前一直报红的BluetoothReceiver呢?该它出马了。

4.6K20

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin版

[在这里插入图片描述] 没错,这就是Kotlin语言的Android项目,和Java还是有区别的,建议了解了Kotlin的语法再看文章会比较好,当然你也可以对照我写的Android 蓝牙开发(扫描设备、...//蓝牙设备绑定状态判断 val tvState = helper!!....当然不是,首先要看你的设备是否支持蓝牙,其次蓝牙是否打开,最后才是扫描蓝牙 于是里面的代码就可以这样写 /\*\* \* 扫描蓝牙 \*/ fun scanBluetooth...isEnabled) { //打开 //开始扫描周围的蓝牙设备,如果扫描到蓝牙设备,通过广播接收器发送广播 if (mAdapter...显示蓝牙设备信息 /\*\* \* 显示蓝牙设备信息 \* \* @param context 上下文参数 \* @param intent 意图

3.8K10

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin版

Kotlin版 蓝牙开发 (扫描设备、绑定、解绑) 前言   之前写了一个蓝牙的小Demo,看的人还是有一些的,也有人私信我说,在学Kotlin,能不能出一版Kotlin的博客讲述这个蓝牙开发,这个想法还是不错的...没错,这就是Kotlin语言的Android项目,和Java还是有区别的,建议了解了Kotlin的语法再看文章会比较好,当然你也可以对照我写的Android 蓝牙开发(扫描设备、绑定、解绑)Java版来看...当然不是,首先要看你的设备是否支持蓝牙,其次蓝牙是否打开,最后才是扫描蓝牙 于是里面的代码就可以这样写 /** * 扫描蓝牙 */ fun scanBluetooth(view...isEnabled) { //打开 //开始扫描周围的蓝牙设备,如果扫描到蓝牙设备,通过广播接收器发送广播 if (mAdapter !...显示蓝牙设备信息 /** * 显示蓝牙设备信息 * * @param context 上下文参数 * @param intent 意图 */

4.2K20

Android6.0蓝牙开发中获取附近低功耗蓝牙设备结果权限问题分析

问题描述: fang_fang_story 近期做一个扫描附近低功耗蓝牙设备获取到rssi并进行一系列的相对的定位的功能。...在开发前期一直使用低版本(Android6.0以下)的手机进行测试,没有任何问题。在运行到Android6.0的手机上后,出了一个问题。...每当扫描到附近ble设备并进行回调时都会报错,根本获取不了扫描的结果,报错如下: D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf...,允许权限之后发现,虽然不再报异常,但依旧刷新不出来结果(如果你的位置信息功能是开启的则就另说了,具体原因看第三条分析) iii>,你目前只是有了使用设备的位置信息的权限,但是你还没有打开位置信息,所以就算有了权限也没办法使用...//判断是否需要解释 DialogUtils.shortT(getApplicationContext(), "需要蓝牙权限

1.5K100

Android项目实战(三十四):蓝牙4.0 BLE 多设备连接

最近项目有个需求,手机设备连接多个蓝牙4.0 设备 并获取这些设备的数据。   查询了很多资料终于实现,现进行总结。...二、项目知识储备     项目中需要用到的三方:     1、RecyclerView         列表,用于显示扫描得到的所有蓝牙设备     2、BaseRecyclerViewAdapterHelper...      蓝牙4.0框架     5、permissionsdispatcher      权限管理,适配6.0+设备     添加依赖 gradle.bulld文件 compile 'com.android.support...* @email djlxqx@163.com * blog:http://www.cnblogs.com/xqxacm/ * createAt 2017/9/6 * description: 扫描蓝牙设备...; //需要连接的mac设备集合 ArrayList gattArrayList; //设备gatt集合     2、关键代码     1、权限适配  注意:不止蓝牙权限

5K70

Android Ble蓝牙App(六)请求MTU与显示设备信息

前言   在上一篇文章中已经了解了数据操作的方式,而数据交互的字节长度取决于我们手机与蓝牙设备的最大支持长度。...MTU 是指在一个蓝牙数据包中能够传输的最大数据量。   通过调用 requestMtu 方法,你可以请求增加或减少 BLE 连接中的 MTU 大小。...获取MTU,蓝牙一般默认支持的MTU长度是23个字节,一个字节为类型操作码,两个字节为类型操作句柄,实际传输数据就是20字节。通过gatt.requestMtu(mtu)。...因为你的Android手机上的蓝牙最大支持247。而在传输的时候你还需要-3,也就是244。单次传输的最大字节数据为244个字节。...注意:在 Android 版本低于 5.0 的设备上,MTU 大小是固定的,无法通过此方法进行修改。

1.1K30

android获取附近蓝牙设备并计算距离的实例代码

// 判断手机是否支持蓝牙 if (mBluetoothAdapter == null) { Toast.makeText(this, "设备不支持蓝牙", Toast.LENGTH_SHORT)...// mBluetoothAdapter.enable(); }else { // 不做提示,强行打开 mBluetoothAdapter.enable(); } 获取手机已经配对的蓝牙设备...device.getAddress()); tvDevices.append(device.getName() + ":" + device.getAddress() + "\n"); } } 注册异步搜索蓝牙设备的广播..." / //部分手机(如小米等)需要将下面两个权限添加进去,蓝牙功能才能正常使用 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION..." / <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" / 以上这篇android获取附近蓝牙设备并计算距离的实例代码就是小编分享给大家的全部内容了

2K10

Android 6.0 蓝牙搜索不到设备原因,MIUI权限申请机制方法

为提供更高的数据保护 Android6.0版本上增加了关于Wifi和蓝牙的权限。...蓝牙搜索到设备需要用到定位服务,所以在开发中 targetSdkVersion 大于等于23(6.0) 需要在代码中进行权限获取 需要在配置文件中申请两个权限: <uses-permission android...:name="android.permission.ACCESS_COARSE_LOCATION"/ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION...ActivityCompat.requestPermissions ,并没有弹出权限使用确认框,而是直接回调:没有权限 当设置询问时去ActivityCompat.requestPermissions ,并没有弹出权限使用确认框,而是直接回调:已有权限,然后在调用蓝牙代码的时候弹出确认框...以上这篇Android6.0 蓝牙搜索不到设备原因,MIUI权限申请机制方法就是小编分享给大家的全部内容了,希望能给大家一个参考。

1.2K20

Android项目实战(二十六):蓝牙连接硬件设备开发规范流程

前言:   最近接触蓝牙开发,主要是通过蓝牙连接获取传感器硬件设备的数据,并进行处理。   网上学习一番,现整理出一套比较标准的 操作流程代码。   ...一切都是套路~~~ 现在以一个小型项目需求来学习Android蓝牙编程 需求: 通过蓝牙获取硬件数据,并显示在一个随数据即时变化的动态折线图中。...实现思路: (1) 配对蓝牙设备   (2) 连接蓝牙设备    ,根据MAC地址,代码中修改 (3) 接收数据 (4) 处理数据          ,根据硬件厂商提供给你的数据转换公式,在BluetoothService...: (1)、MAC地址:每个设备都有全球唯一的,根据此MAC地址判断蓝牙设备 (2)、蓝牙传输数据,通常一秒钟会传输很多个包,每个包的数据情况如下:   此时,这个包有11个字节,0x55 是首码,通常通过他来判断一个包的开始...if (mBluetoothAdapter == null) { //设备不支持蓝牙功能 Toast.makeText(this, "当前设备不支持蓝牙功能

1.6K60

Android蓝牙库FastBle的基础入门使用

前言 最近在做物联网课设,过程中需要用到Android蓝牙API,奈何原生的蓝牙API使用有点麻烦。于是上网搜索看有没有好用的Android蓝牙库,然后发现了这个宝贝,给大家分享一下。...FastBle VS 原生Android蓝牙API 原生Android蓝牙API使用有点麻烦,要先获取设备蓝牙适配器,接着注册广播来接受蓝牙设备信息,用完了还需要将广播给注销,相对来说有点麻烦。...0x01 初始化与全局配置 初始化需要在库中任何函数被调用前执行,由于库使用的是单例模式,只需要初始化一次,在哪里都能使用,建议在onCreate里执行初始化代码: BleManager.getInstance...().enableBluetooth(); 0x03 扫描设备 打开蓝牙之后即可扫描设备,在正式扫描之前,可以自定义扫描规则,像这样: BleScanRuleConfig scanRuleConfig...当然,在任何地方,任何时候,你都可以直接使用取消扫描这个函数来停止扫描: BleManager.getInstance().cancelScan(); 0x04 连接设备 在扫描之后,你已经获取到了一个或多个

2.4K20

Android 蓝牙库 FastBLE 的使用方法

☕ FastBle VS 原生Android蓝牙API 原生 Android蓝牙 API 使用有点麻烦,要先获取设备蓝牙适配器,接着注册广播来接受蓝牙设备信息,用完了还需要将广播给注销,相对来说有点麻烦...android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION...().init(getApplication()); 全局配置可以紧跟初始化之后执行,当然如果不进行配置也没有任何关系,每一个选项都有默认值: BleManager.getInstance()...().enableBluetooth(); 0x03 扫描设备 打开蓝牙之后即可扫描设备,在正式扫描之前,可以自定义扫描规则,像这样: BleScanRuleConfig scanRuleConfig...当然,在任何地方,任何时候,你都可以直接使用取消扫描这个函数来停止扫描: BleManager.getInstance().cancelScan(); 0x04 连接设备 在扫描之后,你已经获取到了一个或多个

1.1K30

Android连续的获取蓝牙的RSSI

连续测量Android设备(Java)的蓝牙RSSI教程 在撰写本文时,即使存在用于获取WiFi RSSI的API,也没有可用于连续检索现有蓝牙连接的RSSI的API。...当前API将只在初始连接建立过程中获得蓝牙RSSI。在本文中,我们将了解如何从运行Linux的计算机上连续获取Android设备和诺基亚移动电话的蓝牙RSSI。...连接到计算机的任何设备的RSSI可以通过在Linux中使用HCIOOL来确定。...但是,对于商业化的Android设备,这可能是不可能的,因为要使用Android NDK从蓝牙HCI层调用任何函数,需要根访问。...源代码使用BlueClub蓝牙库从这些连接的设备中提取RSSI信息。Android设备和诺基亚设备就像服务器一样,计算机就像客户机一样。

1.4K10
领券