CH573-09-BLE蓝牙安卓应用二次开发——RISC-V内核BLE MCU快速开发教程

在这里插入图片描述

一、基础工程搭建

在上一章最后一讲的BLE蓝牙例程中,我们使用了沁恒官方的BLE调试助手完成数据发送,接下来我们使用Android Studio完成一款简易的BLE调试助手。

1、参考文章

我这里参考了CSDN中的一位博主“摸爬滚打的程序媛”的文章以及对应文章中的Android Studio BLE应用工程的Demo。

版权声明:链接中的文章为CSDN博主「摸爬滚打的程序媛」的原创文章,
遵循CC 4.0 BY-SA版权协议,
转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38950819/article/details/103067487

大家先根据这位博主的文章搭建安卓工程,我也是按照这个文章进行的学习,博主也提供了工程源码,可以直接在Gitee上下载,具体请参考上述链接,下面的教程是基于这个工程之上,请大家搭建好上述工程后进行下面二次开发的教程学习。

2、工程自定义修改

按上面的教程搭建工程后,主要是工程的UUID修改,打开沁恒官方的BLE蓝牙调试助手,查看相关UUID,然后在工程中修改,例如:
在这里插入图片描述

3、运行测试

修改后在真机中运行,测试数据收发,首先点击搜索,然后选择要连接的蓝牙,点击连接后在数据输入框中输入数据,点击发送,串口助手可以收到数据(十六进制显示):

在这里插入图片描述
发送没有问题然后测试数据接收,在串口助手中勾选16进制发送,输入“88”后发送,APP端可以接收到数据:
在这里插入图片描述
在上一讲中通过发送字符“1”和字符“0”控制LED,在这个安卓应用中也可以实现,字符“0”的ASCII码为48,换算成16进制为0x30,在安卓应用中发送“30”,在串口助手中同样可以看到LED的开关变化:
在这里插入图片描述
提示:调试信息中的“NO TIME OUT”可在下图中注释掉:
在这里插入图片描述

然后我们就可以通过修改安卓应用程序,实现自己所需要的功能,下面为本期教程的二次开发中遇到的一些问题与解决方法。

二、二次开发可能遇到的问题

1、工程适配

通过上面的教程,我们可以搭建或直接下载模板程序,我这里采用的后者,按上述操作可以完成基本通信,但经过大幅修改后(例如添加界面等)编译会出现错误,如果大家也遇到相关问题,可以参考下面的方法解决:

(1)添加Activity

(这里添加Activity的主要作用是用于触发编译运行时的错误)
NEW->Activity->Empty Activity
在这里插入图片描述
在这里插入图片描述

(2)Default interface xxxx

等待上述Acticity构建完成后点击RUN,会遇到如下错误提示"Default interface methods are only supported starting with Android N (–min-api ":
在这里插入图片描述
解决方法:在“build.gradle”中添加下面代码用于指定JAVA版本,然后点击“Sync now”:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

在这里插入图片描述

(3) Android resource linking failed

添加java版本指定后,再次点击RUN,会遇到新的问题“Android resource linking failed”:
在这里插入图片描述
解决方法:
首先进入“SDK Mangager”,查看“SDK Platform Tools”版本号,例如我这里是“33.0.3”:
在这里插入图片描述
修改:
在这里插入图片描述
再次运行:
在这里插入图片描述

(4)权限问题

这里我们修改AndroidManifest.xml文件,加入下面这句:

android:exported="true"

在这里插入图片描述
再次点击运行,此时程序可以运行,但是点击搜索时会闪退,因为权限需要补充,在MainActivity中的126行可以看到:
在这里插入图片描述
我们可以在文件中手动添加下面两个:

<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />

在这里插入图片描述

然后在需要的地方加入权限检查提示:
在这里插入图片描述
并把报错的“this”替换为“getApplicationContext()”
在这里插入图片描述
然后再次运行,就会发现所有功能正常使用了,接下来,我们可以自由的修改程序,完成自己的蓝牙应用开发啦。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IOT趣制作

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值