成都网站建设设计

将想法与焦点和您一起共享

flutter_ble,flutter_ble写特征值没有权限

Flutter 集成第三方蓝牙库踩坑记录

最近在写flutter应用,需要集成蓝牙功能,用了一个第三方的库,踩了一些坑,做一下记录。

创新互联是一家专注于成都做网站、成都网站设计、成都外贸网站建设与策划设计,金坛网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:金坛等地区。金坛做网站价格咨询:18982081108

这是库的地址 PhilipsHue/flutter_reactive_ble: Flutter library that handles BLE operations for multiple devices. (github.com)

安卓主要的坑就是,在使用蓝牙功能的时候,需要获取定位权限,这个需要动态获取。

集成之后,编译出错,提示Swift Compiler Error。

(1)首先尝试,修改对应三方库的Swift编译版本。

我这边尝试修改,没有成功。

(2) 没办法,我这边手动修改三方库的源码文件,进行修复。重新编译成功。

其他问题

Flutter:快速创建简单闪屏页

近来闲暇时间一直在做Flutter,闪屏页是一个比较常见的需求,网上的闪屏页教程大部分是那种类似于广告页,而非iOS中的 LaunchScreen 性质的闪屏页.按照原来的方案我们要配置闪屏页的话,我们需要同时配置两端的闪屏页,那么有没有比较简单的方案来配置闪屏页呢? 毋庸置疑,当然是有了,那就是Flutter的插件 - flutter_native_splash . 接下来我们就来看一下具体应该怎么使用这个插件.

首先把 flutter_native_splash 导入到工程的 pubspec.yaml 中.这里需要注意的是需要放在 dev_dependencies 下,而不是 dependencies .具体如下所示.

接下来我们就来配置 flutter_native_splash ,在配置之前我们看一下 flutter_native_splash 的可配置项.

例如,我现在只有一个logo图片,那么我想生成iOS和android两端的闪屏页,这时候我只需在 pubspec.yaml 如下设置即可.

当然了,如果你有其他配置可以自行进行添加.

配置完成了,我们该如何生成呢?这时候需要我们打开终端 cd 到我们的工程目录下.如果是Android Studio 或者 VSCode 默认就是在当前工程目录下.

然后我们需要执行下面的三个命令来生成闪屏页

每一次都敲三个命令实属麻烦,我们把上诉的三个命令整合成一个命令,如下所示.

那么,我们不想使用该插件生成的闪屏页该怎么办呢?我们只需要执行下面命令即可.

注:每一次更换图片都是需要重新执行命令重新生成.

OK,上面就是关于 flutter_native_splash 的使用全部内容,其实比较简单,如果需要定制化的,建议还是各自平台配置各自的闪屏页.如果有任何问题欢迎在评论区批评指导,感谢大家了.

flutter 蓝牙ble(blue tooth),同时连接多台/多个设备

于是就有了写作本文的动力,--------解决同时连接多台蓝牙设备!!!

flutter_blue 适合于单台的蓝牙设备,使用起来简单

flutter_reactive_ble 适合于单台的蓝牙设备,多台蓝牙设备也可以用

flutter_ble_lib 适合于单台的蓝牙设备,多台蓝牙设备也可以用,可以在模拟器上进行调试蓝牙

感觉后2个第三方库都可以使用,本人先入为主使用了flutter_reactive_ble,所以本文以flutter_reactive_ble为基础进行介绍

先声明4个全局变量,后面会用到

开始扫描

如果扫描过程,不使用过滤条件,withServices这个参数可以给个空数组

停止扫描如下

连接设备

断开设备,

每连接成功一个设备后,就会产生一个_connectionStreamSubscription,对应设备的断开,就用对应的StreamSubscription去断开, 可以用一个HashMap,去记录 连接成功的设备 与 StreamSubscription 的对应关系

去扫描服务,并过滤服务,扫描结果服务里面是包含有特征的数组,如: serviceId:[fff0,fff1,fff2,fff3,...]

去监听上报来的数据,参数来自前面扫描到的结果serviceId--服务ID, characteristicId--特征ID,deviceId--设备ID

后面就是各位看官根据自己的需求去做逻辑处理啦。

对设备设置命令,发送请求(写操作),list为整形数据,要写的数据

读取设备的信息(读操作)

flutter 多台蓝牙设备同时连接的分享就到这里喽,小伴们,觉得有点用的话,或者已经看到这里面来的请点个赞吧~~ 后续分享更多有关flutter的文章。如果有疑问的话,请在下方留言~

过一段时间后,我在项目把这个蓝牙库用起来了,基本能满足日常需求.效果如下:

Flutter初探--常用依赖包

国外地址:

国内镜像:

以 flutter_screenutil 为例

路由框架 annotation_route

状态管理 provider

UI适配 flutter_screenutil

刷新控件 flutter_easyrefresh

网络请求 dio

toast控件 fluttertoast

图表库 charts_flutter

网络监听 connectivity

事件总线 event_bus

日历组件 table_calendar

官方webview webview_flutter

第三方webview flutter_webview_plugin

该篇文章为常用依赖包总结,用来记录所需要的常用依赖包,后续会不断扩充内容~

flutter 蓝牙开发遇到的坑

flutter 蓝牙开发遇到的坑

最近在做个flutter蓝牙功能,用的flutter_blue,在iOS上没有任何问题,照着例子写完,正常运行蓝牙功能,但是在安卓上发现各种坑,用这个插件首先是有些设备拿不到设备名称,还有就是读写特征和ios上拿到的也不一样。折腾好久,最后在github上找到外国友人给出的方案,就是用flutter_bluetooth_serial这个插件可以解决以上问题,就试了一下,结果真可以解决问题,而且这个用法感觉比flutter_blue 更强大,不需要通过读写特征值进行通讯,直接就能通过connection写入和接收数据。做下记录,希望能帮到有同样问题的人。因为我在遇到问题时,百度了全是不能解决问题的办法。


网站栏目:flutter_ble,flutter_ble写特征值没有权限
URL网址:http://chengdu.cdxwcx.cn/article/dsisjgs.html