下载相关 资源文件 ,在项目中新建如下层级的文件夹,将源文件中的AIDL文件放入其中。

ICallback:打印服务执行结果的回调

ITax:打印服务执行结果的回调

ILcdCallback:顾显反馈结果

根据需求选择aidl文件,IWoyouService是必须的。一般开钱箱使用IWoyouService和ICallback文件即可。

引入AIDL文件

1.找到需要导入工程的aidl文件.通过文本打开,找到文件中的具体包名

package woyou.aidlservice.jiuiv5;

2.依次创建跟之前找到的包名一样的文件夹,我这里是:woyou、aidlservice、jiuiv5。

把对应的aidl文件拷贝到创建的最后一层文件夹里

3.如下文件,依次修改属性。右键属性→生成操作→修改为AndroidInterfaceDescription

修改完后重新生成,生成成功后在obj/Debug文件下找到aidl文件说明引入AIDL文件成功

调用

创建一个公共类(减少重复代码),也可以不创建直接写在需要调用的地方

usingWoyou.Aidlservice.Jiuiv5;public classServiceConnection : Java.Lang.Object, IServiceConnection

{public IWoyouService woyouService { get; private set; }public voidOnServiceConnected(ComponentName name, IBinder service)

{

woyouService=IWoyouServiceStub.AsInterface(service);

}public voidOnServiceDisconnected(ComponentName name)

{

woyouService= null;

}//public void connectPrinterService(Context con)//{//Context context = con;//Intent intent = new Intent();//ServiceConnection conn = new ServiceConnection();//intent.SetPackage("woyou.aidlservice.jiuiv5");//intent.SetAction("woyou.aidlservice.jiuiv5.IWoyouService");//context.StartService(intent);//context.BindService(intent, conn, Bind.AutoCreate);//}

}

调用,全局方法

privateServiceConnection conn;//连接服务

public voidconnectPrinterService()

{

Context context= this.ApplicationContext;

Intent intent= newIntent();

conn= newServiceConnection();

intent.SetPackage("woyou.aidlservice.jiuiv5");

intent.SetAction("woyou.aidlservice.jiuiv5.IWoyouService");

context.StartService(intent);

context.BindService(intent, conn, Bind.AutoCreate);

}

private void BtnPosOpenBox_Click(objectsender, EventArgs e)

{//通过ES/POS指令的方式开钱箱

byte[] aa = new byte[5];

aa[0] = 0x10;

aa[1] = 0x14;

aa[2] = 0x00;

aa[3] = 0x00;

aa[4] = 0x00;try{if (conn.woyouService == null)

{

connectPrinterService();

}if (conn.woyouService != null)

{//打开钱箱,也可以直接使用conn.woyouService.OpenDrawer(null)方法开钱箱

conn.woyouService.SendRAWData(aa, null);return;

}

Message.Show(MessageText.MSG_OPEN_ERROR_PLEASE_RETRY,this);

}catch(RemoteException e1)

{

e1.PrintStackTrace();

}

}

开钱箱

注意LCD屏幕和第二屏是不一样的,是两种不同的东西

private void Btn_Click(objectsender, EventArgs e)

{try{if (woyouService == null)

{

connectPrinterService();

}if (woyouService != null)

{//1 初始化 2 唤醒LCD 3休眠LCD 4清屏

woyouService.SendLCDCommand(1);//设置状态

woyouService.SendLCDCommand(2);

woyouService.SendLCDString("小杨!", null);//设置显示内容//conn.woyouService.SendLCDDoubleString("金额:", "800", null) ;

return;

}

Message.Show("打开失败,请重试!", this);

}catch(RemoteException e1)

{

e1.PrintStackTrace();

}

}

显示LCD屏幕

android lcd 显示图片,Android开发中通过AIDL文件中的方法打开钱箱,显示LCD屏幕相关推荐

  1. android怎么查看方法被谁调用,Android中查看布局文件中的控件(view,id)在哪里被调用(使用)...

    在阅读别人的代码时通常是很痛苦的,有时很想要看一看布局中的控件在哪里被调用了,为之很苦恼 在这里提供一种方法. 复制要查看的控件ID,到R文件中搜索到该ID, 接下来就好办的了,选中ID按下Ctrl鼠 ...

  2. android studio 跨进程,Android IPC机制(三)在Android Studio中使用AIDL实现跨进程方法调用...

    本文首发于微信公众号「后厂技术官」 在上一篇文章Android IPC机制(二)用Messenger进行进程间通信中我们介绍了使用Messenger来进行进程间通信的方法,但是我们能发现Messeng ...

  3. word另存为html文件后,浏览器打开不显示图片

    word另存为html文件后,浏览器打开不显示图片 原因:word自动将图片在html文件中转为<v:imagedata src="路径名" o:title="&q ...

  4. 计算机中丢失raw.dll,win7系统电脑ps佳能打印机显示“CNMurAW.dll无效的映像文件”的解决方法...

    很多小伙伴都遇到过win7系统电脑ps佳能打印机显示"CNMurAW.dll无效的映像文件"的困惑吧,一些朋友看过网上零散的win7系统电脑ps佳能打印机显示"CNMur ...

  5. html img调用js,html调用js变量 如何在html中输出js文件中的变量

    html页面代码中怎么调用js变量?html页面代码中怎么调用js变量,例如 在html代码中插入js代码: a=取浏览你把index1.js 中的onReady 去掉,把index1.js改成 fu ...

  6. LOST.DIR文件夹中意外丢失文件的恢复方法

    LOST.DIR文件夹中意外丢失文件的恢复方法 LOST.DIR文件夹中意外丢失文件的恢复方法 http://moto.it168.com/thread-750593-1-1.html 玩了一段时间A ...

  7. 在.net中读写config文件的各种方法(转载)

    阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...

  8. python根据文件名打标签_使用python将图片按标签分入不同文件夹的方法

    给定图像集如下,所有类别的图片均在一个文件夹内: 给定与图片名相匹配的表格,声明每张图片对应的类别(共有20个类别): 那么,如何根据表格中所给的类别将图片分入对应的文件夹内呢?以我的情况为例,我想将 ...

  9. vscode中如何创新建php文件,php – 如何在Visual Studio Code,UNIX中的所有文件中创建所有行结尾(EOL)?...

    我使用Windows 10 home,我通常使用Visual Studio Code(VSCODE)来编辑Linux Bash脚本以及PHP和JavaScript. 我没有开发任何专门用于Window ...

最新文章

  1. rs485调试软件_【乐创“芯”说】你想知道的RS485
  2. torch 归一化,momentum用法详解
  3. 插入排序(c++实现)
  4. C++ const修饰符和指针
  5. Java实现二树杈_HashSet的hashCode方法和equals方法的重写,TreeSet中compareTo方法的重写,Comparator在treeSet中的应用。...
  6. 无向图:计算亏格(环的孔洞)
  7. 小红书笔记_小红书的沙雕笔记,害人不浅啊
  8. cygwin安装教程图解
  9. Leetcode每日一题:860.lemonade-change(柠檬水找零)
  10. 《应用软件安全编程指南》国标发布 奇安信代码卫士已全面支持
  11. php 给图片加水印
  12. 算法:Search in Rotated Sorted Array(搜索部分顺序被翻转的数组)
  13. 翻转棋java实现代码及ai_黑白棋中的 AI
  14. 爱客影院自动采集源码v3.5.5
  15. 【每日一网】Day4:OverFeat流程简单理解
  16. cpu倍频模式怎么调_BIOS:增加倍频比率调整选项
  17. 我看《三体》:行走于黑暗森林,常防备降维打击
  18. NTL(Number Theory Library)源码剖析(2)__基本运算
  19. Vivado 与 Vitis 2022.1 安装记录
  20. 将压缩包变成图片的小技巧

热门文章

  1. 热修复 原理与实现详解
  2. 微信小程序拼图游戏(有效果图)
  3. Libra,一场赛博朋克噩梦!
  4. 工作十年之感悟 -- 兼谈生活与人生
  5. 团队作业—beta冲刺
  6. 区块链学习笔记及总结【二】
  7. EXCEL排名一样大的不重复
  8. 梦兴阁分析:信息流还有多久的红利期
  9. iconfont用在placeholder里
  10. linux异常(九):Linux虚拟机启动异常/打不开 位-000005.vmdk”或它所依赖的某个快照磁盘 | 做映射时提示:读取卷信息时出错 请选择其他磁盘文件