扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
原理:我们都知道,Flutter调用原生的API需要通过插件来实现,permission_handler就是获取原生手机权限。
成都创新互联公司是一家集网站建设,镇江企业网站建设,镇江品牌网站建设,网站定制,镇江网站建设报价,网络营销,网络优化,镇江网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
解决记录:
最近在写flutter应用,需要集成蓝牙功能,用了一个第三方的库,踩了一些坑,做一下记录。
这是库的地址 PhilipsHue/flutter_reactive_ble: Flutter library that handles BLE operations for multiple devices. (github.com)
安卓主要的坑就是,在使用蓝牙功能的时候,需要获取定位权限,这个需要动态获取。
集成之后,编译出错,提示Swift Compiler Error。
(1)首先尝试,修改对应三方库的Swift编译版本。
我这边尝试修改,没有成功。
(2) 没办法,我这边手动修改三方库的源码文件,进行修复。重新编译成功。
其他问题
在Android真机调试时会出现没有网络权限的情况;
在AndroidManifest.xml 中添加
AndroidManifest.xml的路径 android/app/src/main/AndroidManifest.xml 通常manifest的 /application 后添加
示例:
Bad state: Insecure HTTP is not allowed by platform
AndroidManifest.xml 路径为:android/app/src/main/AndroidManifest.xml)
1.2 添加的属性为
示例:
Android:
添加蓝牙/定位权限
文件地址:Flutter项目文件夹/android/app/src/main/java/AndroidManifest.xml
iOS:
添加蓝牙权限
文件地址:Flutter项目文件夹/ios/Runner/Info.plist
运行Flutter 在Android端安装的时候Androidstudio提示这个错误:
原因:出现这个错误的原因是我引入的第三方库最低支持版本高于我的项目的最低支持版本,异常中的信息显示:我的项目的最低支持版本为,而第三方库的最低支持版本为x),所以抛出了这个异常。
解决办法:文件地址:Flutter项目文件夹/android/app/src/main/java/AndroidManifest.xml
中添加
问题出现在Android端,连接蓝牙设备后,匹配特征值的时候
报:set_notification_error,编写描述符时出错。
原因:
我个人的分析,设备是使用标准的Android API用于蓝牙,必须等待回调,该回调表明之前的GATT操作已完成(onDescriptorWrite),直到可以编写下一个描述符以启用特征通知。也就是程序有个通过特征性UUID比较的工作顺序,由于信号不好,或者是信号缓冲之类的原因,造成蓝牙可能流程一步一步走不下来。
解决:
setNotifyValue(true) 添加延时操作
没有引用极光推送包 之前得权限:
-访问网络
-修改/删除SDK卡中的内容
-拍照
-控制震动器
-查看网络状态
-查看WLANK状态
-读取手机状态和身份【去掉 tx_device_id 包 该权限没有 】
极光推送包引入后 手机权限多了以下这些:
-修改全局系统设置
-装载和卸载文件系统
-显示系统及警报
-大概位置
-更改WLAN状态
-精准的(GPS)位置
-访问额外的位置信息提供程序命令
-更改网络连接性
-检索当前运行的应用程序
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流