安卓APP打包及蓝牙使用

介绍:

此文档主要涉及Quasar框架中的Quasar Cli(Webpack)中的cordova部分内容。

实现内容

在安卓APP中使用蓝牙和设备交互。

主要问题:
  1. 安卓开发环境问题:node版本、npm版本、quasar版本、cordova版本、cordova-android版本
  2. 安卓APP的打包问题
  3. 蓝牙插件的使用问题
前置需求:

工作电脑基本的环境需求简述:环境变量的增加、Android Studio的安装和软件内部的插件安装、java安装、gradle的下载部署等

问题解决:

解决版本号的问题。我深知以下版本号并不一定对,但在本人电脑上可以打包APP。

quasar mode add cordova

cd src-cordova

cordova platform add android@10.0.0

cordova plugin add cordova-plugin-geolocation

cordova plugin add cordova-plugin-ble-central

关于蓝牙插件的代码内容,查看文档即可,后面会有使用蓝牙插件注意的地方。

android 应用无蓝牙权限 安卓蓝牙管理app_前端

解决打包的问题:我一直在使用的打包命令为quasar build -m cordova -T android。在使用以上版本号后发现打包为了xxx.aab的安装包。aab的安装包在手机上无法直接安装,我司也没有上架商店的想法,所以就得想办法打包为apk。

因为我需要使用蓝牙插件,蓝牙插件需要的cordova-android版本为10.0.0+。我把版本升级到最新为12.0.1发现生成的文件为aab文件。

我在使用9.1.0版本时,使用正常打包命令即可打包为apk,所以在试了无数次错之后,我选定了10.0.0版本。一是距离9.1.0版本接近,二是满足蓝牙插件的最低版本要求。

然后我再配置环境,说实话我并不知道我干了什么。因为12.0.0需要android studio安装更多的插件,后来我用了10.0.0又卸载。总之一团乱。

但是打包不成功不行,我去找到了src-cordova—node_modules—cordova-android—lib—builders—ProjectBuilder.js。

通过上面文件中粗浅的阅读后,我认为是debug版本才可以打包apk

然后我通过命令quasar build -help中看到了quasar build -m android如果想要debug版本即在命令后增加-d,即quasar build -m android -d

android 应用无蓝牙权限 安卓蓝牙管理app_vue_02

android 应用无蓝牙权限 安卓蓝牙管理app_android_03

我能理解此种方法估计为“邪魔外道”,但为了完成项目也就这样了。

android 应用无蓝牙权限 安卓蓝牙管理app_版本号_04

这个是我打包后的apk,可以直接传给手机进行安装使用。至于我们经理跟我说的,敲一个什么命令直接安装到手机上,我太懒,就一直从微信传,想来这也是另一条“邪魔外道”了。

个人理解

在摆弄这些环境、版本、内容之后,我认为还是环境问题,安卓的开发环境最麻烦,因为版本号还可以查看所有版本进行挑选安装。我现在对本人电脑上的环境头疼不已。因为我司日常最常用的为node12.22.10,但是我又要看vue3,所以在D盘装了16.14.0和18+。这就导致我更新的也就是npm下载的插件都在d盘,然后我在终端里面-v,cordova拿到的都是c盘的老版本…此种事件不胜枚举,电脑的环境问题都是我的错。

蓝牙插件避坑

如何使用蓝牙插件直接查看文档即可,只是文档是英文的,需要时时翻译。

坑点有:

  1. 前端用一个方法接收数据和发送数据时,需要用特定的数据格式,文档中有介绍。绝不是什么一个数组传过去就解决了的。

文档是英文的,需要时时翻译。

  1. 后续再补充吧…