Android智能遥控器DEMO

news/2025/1/1 12:55:40/

前言:前段时间接手了公司几个智能控制的APP的开发工作。在开发的过程中遇到了许多的关于App的问题-架构,代码逻辑,填了许多坑(当然有人把我拉出来啦!)。为了避免再次爬坑并记录工作,写下此博客。

主要设备:410c的开发板,外接的红外模块。

APP的主要功能:一个是控制模块,一个是学习模块,以及可能要有的远程控制模块。

控制模块:主要是往底层节点写一些红外特征码,主要是一些些如夫人操作:

 public static void WriteData(String path, String content) {FileOutputStream fos = null;File file = new File(path);if (file.exists()) {try {//注意new FileOutputStream的时候如果后面还需添加数据而不是覆盖数据就因该在后面加truefos = new FileOutputStream(file);Log.e("File", "FileWriter");} catch (FileNotFoundException e) {e.printStackTrace();}byte[] array = content.getBytes();try {fos.write(array);} catch (IOException e) {e.printStackTrace();}try {fos.flush();fos.close();} catch (IOException e) {e.printStackTrace();}}}

关于本Demo的第二个难点就是学习模块:
这个功能的实现主要是在C里实现的,我们主要是调用下JNI的方法进行读取已学习到的红外特征码。
关于不是自己打包的SO文件特别要强调一句:“注意JNI方法的包名要和调用JNI的报名一致!”不然会有各种调不到方法的错误。

这是我的JNI的Load文佳的path:/SmartRemoteController/app/src/main/java/com/ircode

package com.etek.ircore;import android.util.Log;import com.ircode.IRCode;/*** Created by root on 17-7-19.*/public class RemoteCore {private static final String libSoName = "IRCore";static {try {System.loadLibrary(libSoName);Log.e("JNI",libSoName+" load finished");}catch (Exception e){Log.e("JNI"," exception "+e.getMessage());}}public native static IRCode ET4007Learn(byte[] codes);public native static byte[] readLearnIRCode();public native static int IRinit();
}

如何查看SO提供的方法接口? 在Ubuntu下可以使用如下命令 nm -D XX.so

这里写图片描述

查看到的方法名和当前的包名一定要相同。


http://www.ppmy.cn/news/879991.html

相关文章

基于esp32的智能遥控器

文章目录 一、演示视频二、程序框架三、硬件设计四、模块介绍1、语音识别模块离线语音识别优化语音识别 2、BLE模块3、MQTT模块3.1、命令下发3.2、设备属性上报3.3、平台查询设备属性3.4、应用侧接口 4、音频播放模块4.1、播放本地mp34.3、文本转语音 5、红外模块5.1、红外发射…

Qt开发——重写PaintEvent 绘制横向波形图

Qt开发——重写PaintEvent 绘制横向波形图 输入的数据: 输入数据为1维数组,其中数组下标代表索引,数组值代表强度值 输出形式 将传统的X轴放在左侧,Y轴放在上侧 效果演示 代码显示 .h文件 #ifndef CURVEWAVEWIDGET_H #defi…

C# WPF实现动画渐入暗黑明亮主题切换效果

C# WPF实现动画渐入暗黑明亮主题切换效果 效果图如下最近在Bilibili的桌面端看到一个黑白主题切换的效果感觉,挺有意思。于是我使用WPF尝试实现该效果。 主要的切换效果,基本实现不过还存在一些小瑕疵,比如字体等笔刷不能跟随动画进入进行切换。因为Bilibili的客户端是用el…

draco 解压

参照google源码中的示例draco_decoder,draco_encoder基本大概可以了解到Draco的使用逻辑&#xff1a; #include <core/decoder_buffer.h> #include <io/mesh_io.h>#include <fstream> #include <iostream>using namespace draco; using namespace std…

draco3D轻量化技术在Unity3D中应用

draco3D轻量化技术在Unity3D中应用 之前完成了draco3D对glb模型轻量化的处理工作&#xff0c;并完成了正常的加载。先进行draco3D在U3D中的应用。 方法一&#xff1a;将.obj模型压缩成.drc、.bytes类型再做加载。使用工具地址&#xff1a;https://github.com/google/draco.下…

Draco节点安装

Draco节点安装安装文档 Draco节点支持的操作系统 ubuntu16.04以上,centos7以上;4月30号起,将支持window系统及Linux更多版本;将来会支持更多硬件。带宽配置越高,贡献值越大,挖矿奖励越多。 Draco节点下载链接 百度云链接: https://pan.baidu.com/s/18-TJuH2YucMqiw1…

Draco嵌入式AI开发板使用手册V0.1.1

教学资源&#xff1a; K210入门教学&#xff08;基于Draco天龙座开发板&#xff09; 1. 硬件资源介绍 Draco嵌入式AI开发板&#xff0c;由AI模块和外设底板构成。开发板集成了摄像头、LCD屏幕、麦克风和WIFI模块等丰富外设&#xff0c;且板载拓展口与树莓派兼容。利用Type-C…

谷歌draco

前不久&#xff0c;谷歌开源的Draco关于点云的编码与压缩的源码&#xff0c;Draco 由谷歌 Chrome 媒体团队设计&#xff0c;旨在大幅加速 3D 数据的编码、传输和解码。因为研发团队的 Chrome 背景&#xff0c;这个开源算法的首要应用对象是浏览器。但既然谷歌把它开源&#xff…