备注:由于该示例是基于友善之臂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. 数据结构Java实现05----栈:顺序栈和链式堆栈
  2. 佳顺通用进销存系统去广告_免费OA办公系统的问题汇总回答
  3. Oracle的分页实现
  4. LeetCode 面试题 03 数组中重复的数字
  5. Docker带版本号安装Zk
  6. 前端 input怎么显示null_前端架构 101(二): MVC 初探
  7. 【报告分享】见实私域流量白皮书:私域流量案例实操手册.pdf
  8. 【软件测试】《软件测试技术基础》知识点整理
  9. python没基础能自学吗-50K大牛告诉你,没有任何编程基础,到底应该怎么自学Python...
  10. ubuntu学习日记--Lesson6:shell,bash,dash
  11. Java 程序员常用资源网站集合
  12. 与iPhone5国行A1429的故事:越狱、降级刷机、完美电信3G、不完美电信4G、撸油管
  13. docx,pptx等正确的mime类型是什么?
  14. ECC椭圆曲线算法(1)阿贝尔群
  15. qq游戏计算机内存错误,Win7玩qq游戏报错“chnchess.exe遇到问题需要关闭”如何修复?...
  16. 查询出每一个雇员的姓名,工资,部门名称,工资在公司的等级及其领导的姓名,领导的工资,以及领导所相应的等级...
  17. oracle中sql查询增加自增序列号
  18. 输入n×n阶矩阵,用函数编程计算并输出其两条对角线上的各元素之和
  19. linux查询系统硬件配置
  20. iOS Mansory 等间隔或等宽高排列多个控件

热门文章

  1. 对2016年android实习就业的一些看法
  2. 安全-认证授权、数据脱敏
  3. 深入浅出Java开发!java工程师短期培训
  4. 【Cocos2d-x】模仿热血传奇开门动画
  5. 基于labview开发平台的声音信号采集及处理系统设计
  6. 计算机内存不足 玩qq游戏,电脑怎么也打不开腾讯QQ游戏如何解决
  7. WORD设置节起始页码后出现诡异隐藏页/跳页、节首页页面边框丢失
  8. tiup cluster replay
  9. 全国计算机自考报名系统入口,自考报名时间
  10. R语言编程学习之函数与模型:VAR与SVAR和爬虫(图)