备注:由于该示例是基于友善之臂4412开发板,且用到了友善之臂官方提供的用于“硬件开发的.so“文件,及微光互联二维码扫码器,和一个串口控制继电器的SR-104A模块。文章主要是对如何调用这些现成的API做一个简单的测试。以备自己以后开发时查看。

1.找到4412开发板对底层外设的支持包
在4412光盘资料“D:\4412-DVD-A-15092\tools\libfriendlyarm-hardware”中

2.在新建的安卓工程中添加libfriendlyarm.so文件到项目的libs下。

3.把“java”下的“com”整个复制,粘贴到项目的“src”下

4.完成上述步骤后,可以依据4412官方提供的“Tiny4412 Android硬件开发指南”进行app对开发板上硬件资源的调用了。

(补充)5.以打开串口通讯为例。
5.1.查看串口相关的java类。

5.2.通过“HardwareControler.openSerialPort”来打开串口,返回值为大于0,即表示成功。这里的4个参数是写死的,板子上的串口设备主要是/dev/s3c2410_serial0(板子上的左1串口)和/dev/s3c2410_serial3(板子上的左2串口)

5.3通过HardwareControler.select来查询是否有数据传来,是否需要接受。通过HardwareControler.read

5.4通过“HardwareControler.write”来发byte[]数据。

(补充)6.串口控制继电器模块
6.1.关于串口控制的相关手册位于
6.2.简单的几点。
波特率:9600(很重要,如果设置错误,将无法实现结果)
数据位:8
停止位:1

模块可以控制4个继电器,但CH3和CH4为拓展口,在这个模块板子上没有,无法直接使用。只能控制CH1和CH2。
开CH1关CH2 : 0x01
开CH2关CH1 : 0x02
全开 : 0x0f
全关 : 0x00

由于上面“HardwareControler.write”只能接受byte[]型的数据,所以要传16进制的0x01时,需先转成byte[]型进行发送。

(补充)7.微光互联扫码小盒子模块
7.1关于微光互联扫码小盒子的相关资料位于
7.2.首先要查看安卓对UVC的是否支持,在不插扫码器的情况下,在终端中输入”adb shell” ,然后“ls –l /dev/video*” 将列出一些video设备;再把扫码器接上,执行上述命令“ls –l /dev/video*”。看两个的不同,找到那个多出来的设备,就是扫码器的设备名。

7.3如果发现权限为“crw-rw-rw-”,则需要修改该设备的权限
使用adb方式登陆,插入设备后,执行:
a)“chmod 777 /dev/video*”命令(注意此处需要超级用户“#”,如果不是“#”,而是“$”符号,在命令行下输入“su root”即可)
b)“chmod -R 777 /dev/bus/usb”命令

7.4添加 .so 文件和提供的包到你的安卓工程中

7.5初始设置
在需要使用设备的地方,执行初始化设置:
//设置QR状态,true时qr引擎开启;false时qr引擎关闭
VguangApi.setQRable(true);
//设置DM引擎状态,true时dm引擎开启;false时dm引擎关闭
VguangApi.setDMable(true);
//设置一维码引擎状态,true时一维码引擎开启;false时一维码引擎关闭
VguangApi.setBarcode(true);

    // 设置解码间隔时间,单位毫秒VguangApi.setDeodeIntervalTime(300);//设置自动休眠状态,true时自动休眠开启;false时自动休眠关闭VguangApi.setAI(false);//设置扬声器状态,true时扬声器(缺省声音)开启;false时扬声器(缺省声音)关闭VguangApi.setBeepable(true);

注意:在QR、DM、一维码中请至少设置一种。
最重要的是,初始化完成后,打开设备开始解码:
//打开设备
VguangApi.openDevice();

7.6 功能的调用
主要功能是在导入的源文件VguangApi.java 的方法。调用很简单

获得扫码器状态(这里用的是官方提供的示例程序的代码)
把示例工程里的“DecodeCallBack”类和“DeviceStatusCallBack”类复制进来
在mainActivity需要用到显示扫码结果和显示扫码器状态时,如下调用即可

(这里的tv3是textview控件,即扫码器的状态会显示到id为tv3的控件上)

(这里的tv2也是textview控件,即扫到的结果会显示到id为tv2的控件上)

补充:官方文档中对“回调”的讲解
2.1处理解码回调(必须)
实现com\vguang\IDecodeCallBack.java接口
public class DecodeCallBack implements IDecodeCallBack {

@Override
public void decodeCallBack(final String decodeStr) {

//根据实现情况修改处理
//这里的decodeStr,其实就是返回结果的容器。
//在调用VguangApi.setDecodeCallBack(decodeCallBack);后,decodeStr其实就已经是结果了。
}

}

设置解码回调:
DecodeCallBack decodeCallBack = new DecodeCallBack(this, decodeStr);
VguangApi.setDecodeCallBack(decodeCallBack);


个人补充简单示例:
//这个是扫码器的结果回调
public class DecodeCallBack implements IDecodeCallBack {
static String str=”没有值”;

@Override
public void decodeCallBack(final String decodeStr) {System.out.println("decodeStr:" + decodeStr);str=decodeStr;
}

}

在MainActivity中onCreate下的调用片段如下:
DecodeCallBack decodeCallBack = new DecodeCallBack();
VguangApi.setDecodeCallBack(decodeCallBack);
String str2=decodeCallBack.str;
// textview.settext(str2);//这句是错误的,因为onCreate是创建时的初始化页面,只执行一次,如果要在扫到结果后改变控件内容或页面,不能直接在onCreate里直接写textview.settext(str2);

安卓app控制继电器和扫描盒子的简单例程相关推荐

  1. SAP自开发安卓APP - 固定资产盘点扫描盘点

    APP使用的开发工具是Android Studio,语言是JAVA.SAP作为服务端,APP作为客户端,无需再搭建其他的中间应用服务,APP通过HTTP+XML的方式与SAP进行数据交互,用户和权限管 ...

  2. 安卓app开发-----服务器端开发

    首先允许我稍微介绍一下我们的团队背景,我们是一群研究生,互相认可,然后就准备合作做一款安卓app,具体app内容不方便透露,但就我的任务来说,是从事后台开发相关的工作.服务器端的技术其实在搞这个项目之 ...

  3. 简单易用的APP制作软件,KM盒子V6.3版发布

    KM盒子是一款支持文字.表格.图片.音视频混合排版的手机APP制作软件.软件操作简单无需学习专业的手机编程知识,使用图片.文档或网页等方式即可快速制作生成手机APP应用. KM盒子V6.3版下载网址: ...

  4. 视频直播APP源码在安卓中推送SDK集成居然如此简单!

    视频直播APP源码在安卓中推送SDK集成居然如此简单! 思维导图 详细步骤 下载 demo 我的师傅大鸟哥告诉我,集成各类 SDK 的第一步骤都是下载个 Demo,先把 Demo 跑起来看看是什么鬼. ...

  5. TVMovie JAVA源代码1.2.4版原生安卓tv源码电视盒子APP开源全前端无后台

    b站视频教程:高清版可点击进入观看>> 高清演示视频看下方: 原生安卓tv源码电视盒子app TVMovie JAVA源代码 APP开源全前端无需后台 AndroidTV.机顶盒.电影 ...

  6. 积木编程安卓app入门 —— 5 分钟学会 App Inventor

    不用怀疑,学习App Inventor就是这么简单.花费5分钟,就能学会App Inventor. 1分钟了解App Inventor App Inventor 2 简称 ai,为了和人工智能(Art ...

  7. 安卓App自启动,两种不同的方式!!!支持到安卓4.4

    初衷 自己给车机买了CarPlay盒子,但是车机启动后需要点击App才能使用,十分拉闸!!!所以做了这个自启动器. README! 因为 它是apk文件 它是基于安卓4.4开发的 所以 它能安装到所有 ...

  8. 基于STM32-消防栓监测系统毕业设计---论文(附加最全面的从硬件电路设计->驱动程序设计->阿里云物联网搭建->安卓APP设计)

    设计展示视频连接:消防栓监测系统视频 驱动程序工程文件:消防栓监测系统驱动程序工程(全寄存器开发的) 消防栓监测系统所有设计资料:全栈设计,如下图所示 消防栓监测系统论文(图片看不清的可以下载文档看) ...

  9. (远程控制)App inventor 编写安卓app控制 ESP8266

    (远程控制)App inventor 编写安卓app控制 ESP8266 第一 下载ESP8266示例(arduino ide 编程开发) 第二 修改demo例程 第三 app inventor 开发 ...

最新文章

  1. MySQL-自定义函数
  2. 近期活动盘点:车路协同与智能驾驶思享会(1.22)
  3. cnn卷积神经网络_卷积神经网络(CNN)原理及应用
  4. 纯ActionScript3.0打造的工作流程编辑器(WorkFlowEdit V1.0Bata1.0)
  5. android 图标自动更新,android手机安装软件后会生成图标,但今后更新该软件图标都不会变化,如何使图标变成最新版的图标?...
  6. NET问答: 如何使用 C# 自动化关闭电脑 ?
  7. 吸水间最低动水位标高_体验长安逸动EV460:再也不用为电动车续驶里程焦虑了...
  8. Android.mk 语法详解
  9. 什么是elastic-job(持续更新)
  10. 软件研发过程客观体检指标
  11. c语言编辑三色球问题,C语言实例编程:三色球问题
  12. 2022年全球及中国工业五金垫圈行业研究
  13. UEStudio注册码机 文本编辑器软件v2020.10.21
  14. 解决 - Adobe Acrobat/Adobe Reader 的 Windows 任务栏图标异常
  15. 中国计算机仿真行业全景调查与投资策略建议报告2022-2028年版
  16. 基于SSM框架的图书馆借阅管理系统
  17. 智能电视linux系统安装当贝,三星电视怎样安装当贝应用?
  18. 企业级BYOD实践与挑战:如何改善BYOD策略
  19. windows以兼容模式运行程序
  20. pandas 如何创建空的DataFrame

热门文章

  1. cas70152-54-4/内消旋-四(间苯甲酸)卟吩/3,3‘,3‘‘,3‘‘‘-(21H,23H-porphine-5,10,15,20-tetrayl)tetrakis-Benzoic acid
  2. 简易个人网站的搭建--页面布局(二)
  3. 罗永浩到底有没有恰烂钱?
  4. 使用H3C模拟器配置VLAN相关项目
  5. ZED2相机标定--双目、IMU、联合标定
  6. 让工作变得高效而简单的10种方法
  7. ps4和xbox是linux吗,算PC还是算主机!Steam主机、PS4、Xbox One硬件配置对比
  8. 牛人 就是这样锤炼出来的,中兴资深工程师,嵌入式专家韦东山是这样炼成的!
  9. Servlet5.0规范英文版
  10. <Linux开发>驱动开发 -之-platform 驱动