我的首个AI程序——安卓Usb通信收发测试(附源码)
今年工作中使用AI的次数比较,最近就使用“腾讯元宝 DeepSeek”帮我完成了一个安卓程序:用来测试安卓板与usb打印机的收发通信,只是简单实现了基础字节收发,并没有进一步封装打印指令,毕竟这不是做完整项目,只是一次测试验证!
主要功能:
1、选择符合条件的usb设备,建立usb连接
2、选择或手动输入hex字符并发送给已连接的设备
3、接收usb的返回信息(比如发送查询usb状态的hex字符后,再点接收数据按钮)
4、代码已传仓库,可自取:https://github.com/joolan/USBTester
5、提示:该程序存在授权bug,如果有多个bus设备建议先连接1个usb 授权成功后再连接下一个usb然后再授权,全部usb授权成功一次后即可。 如果是安卓开发板有root权限的情况下是不存在此bug的。否则授权可能引起程序闪退!
下面简单介绍下AI干活的主要过程(需要一些基础的Android Studio操作能力,不感兴趣的可忽略)
1、告知AI我的需求想法:有没有安卓usb通信 程序,用来测试连接某个usb设备后收发数据字节

然后AI给了我一些示例代码,但是我并不了解怎么使用这些代码,接着我又继续问AI了!
2、尝试让AI告诉我怎么在软件商操作:如何使用android studio来实现上面代码

按照提示要求照做即可,usb的vendor-id、product-id使用的我这边usb打印机的id;通过usb集线器同时连接了3个相同型号的打印机,现在只是让AI写连接一个usb设备的场景。
3、完成上面代码后我没有急于测试,而是继续加难度:如果有多个相同型号usb设备,区别是usb序列号不同,那么该怎么实现

4、尝试运行程序,但是安卓编辑器里面出现了一些红色报错,使用AS自己的修复功能修复一些后如果还有红色错误可以根据错误提示直接问:

5、也可以提要求优化代码逻辑:把发送数据的代码byte[] data = "TestData".getBytes();语句改成发送十六进制数据 AA 04 01 55

如果涉及新的函数或处理方法,也会在代码中写出来,注意复制。
6、如果程序代码不算多可以直接复制全部代码并提出你的要求,它很聪明会自己修改:

注意修改后的代码并不是完整的,需要注意哪些地方是AI优化过的。
7、再来加难度,让它支持选择同型号的多个设备:

如果新功能涉及到页面布局按钮,它也会给出相应的代码,需要注意下按钮事件的触发方式。
8、未解决的诡异之谜,程序闪退(这个应该还是AI写的程序处理usb授权逻辑不够完善,如果多个usb设备同时连接授权会引起程序闪退)

9、继续给AI加难度,就是想要什么功能让AI一步一步做,如果遇到代码错误直接让它尝试解决!


10、AI也会犯错,要适当复核代码:如果AI给出代码后运行不符合预期可以手动检查下代码逻辑,我至少遇到过逻辑错误、 变量/常量未提前申明、布局文件更新后缺少android:onClick事件导致触发不了,核心就是遇到问题可以把问题表象告知AI 让它尝试自己去理解可能产生问题的原因!

最终成品效果展示
注意修改源代码中的设备标识(设备标识可以网上自己查教程,或参考我之前的文章:windows下python实现usb收发通信 – 染卷'blog):
USBActivity.java文件下的TARGET_VENDOR_ID、TARGET_PRODUCT_ID:
private static final int TARGET_VENDOR_ID = 0x5A5A; private static final int TARGET_PRODUCT_ID = 0x8009;
res/xml/device_filter.xml 下的过滤设备标识:<usb-device vendor-id="0x5A5A" product-id="0x8009" />


基于互联网精神,在注明出处的前提下本站文章可自由转载!
本文链接:https://ranjuan.cn/deepseek-android-usb-test/
微信赞赏
支付宝赞赏
发表评论