Android(进程通信)AIDL
发布日期:2021-06-30 21:23:34
浏览次数:2
分类:技术文章
本文共 3564 字,大约阅读时间需要 11 分钟。
AIDL
在Android中进程通信 直接看代码 ,Dome要讲的是支付宝和淘宝进行支付通信
第一步创建AIDL接口
// IService.aidlpackage com.android.aidl;// Declare any non-default types here with import statements /** * * @param account 账号 * @param pwd 密码 * @param payPwd 支付密码 * @param money 支付金额 * @param currTimeMiles 当前的时间撮 * @return int * 代码错误 ----- -1 * 账号密码错误 ---0 * 支付密码错误 ---1 * 余额不足 ------2 * 支付成功 ------3 */interface IService { int callSafePay(String account,String pwd,String payPwd, double money,long currTimeMiles);}
第二步创建支付宝服务
public class MyService extends Service { public MyService() { } @Override public IBinder onBind(Intent intent) { return new MyBind(); } private class MyBind extends IService.Stub{ @Override public int callSafePay(String account, String pwd, String payPwd, double money, long currTimeMiles) throws RemoteException { return safePay(account,pwd,payPwd,money,currTimeMiles); } } /** * * @param account 账号 * @param pwd 密码 * @param payPwd 支付密码 * @param money 支付金额 * @param currTimeMiles 当前的时间撮 * @return int * 代码错误 ----- -1 * 账号密码错误 ---0 * 支付密码错误 ---1 * 余额不足 ------2 * 支付成功 ------3 */ private int safePay(String account,String pwd,String payPwd, double money,long currTimeMiles){ if(!account.equals("zhangsa")||!pwd.equals("123456")){ return 0; }if(!payPwd.equals("123456")){ return 1; } //如果支付的金额大于一千块就显示余额不足 if(money>1000){ return 2; } //如果上面的多不满足 说明支付成功 return 3; }}
第三步给服务提供外部的一个Action去启动服务
创建淘宝
第一步,吧对应的支付宝的aidl文件复制到淘宝里面 , 包名类名要一致 重构项目
第二部通过一个Intent启动服务使用BindService
public void onClick(View view){ Log.v("liwangjiang","onClick"+getPackageName()); Intent intent = new Intent(); intent.setAction("com.li.zhifubao.AlipayService.SAFEPAY"); intent.setPackage("com.android.aidl"); bindService(intent, new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { Log.v("liwangjiang","service"); IService bind = IService.Stub.asInterface(service); try { int id= bind.callSafePay("zhangsa","123456","123456",123,SystemClock.currentThreadTimeMillis()); switch (id) { case 0: Toast.makeText(MainActivity.this, "账号或密码错误", Toast.LENGTH_SHORT).show(); break; case 1: Toast.makeText(MainActivity.this, "支付密码错误", Toast.LENGTH_SHORT).show(); break; case 2: Toast.makeText(MainActivity.this, "余额不足", Toast.LENGTH_SHORT).show(); break; case 3: Toast.makeText(MainActivity.this, "支付成功", Toast.LENGTH_SHORT).show(); break; default: break; } } catch (RemoteException e) { e.printStackTrace(); } } @Override public void onServiceDisconnected(ComponentName name) { } },BIND_AUTO_CREATE); }
转载地址:https://liwangjiang.blog.csdn.net/article/details/90445640 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月22日 01时53分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据结构之线性链表
2019-04-30
JQuery使用validate插件完成校验
2019-04-30
关于java的继承
2019-04-30
关于java的内部类
2019-04-30
关于java的枚举
2019-04-30
一个简单的layui登陆界面
2019-04-30
SQL考试常见题目
2019-04-30
使用Spring Boot写一个简单的Hello World
2019-04-30
Spring Boot整合Servlet使用
2019-04-30
SpringBoot 文件上传
2019-04-30
我居然在Github上找到了一个完整的停车系统(附源码地址)
2019-04-30
大厂经典面试题:Redis为什么这么快?
2019-04-30
精通Spring?请吃我一狗腿!
2019-04-30
培训班老师说可以用这个干掉一大批面试者
2019-04-30
靠这本,在某宝花了399大洋的宝典,熬夜七天,吊打面试官,终进大厂
2019-04-30
阿里四面,居然栽在一道排序算法上
2019-04-30
【Java编码规范】《阿里巴巴Java开发手册(正式版)》发布!
2019-04-30
如何在二三线城市月薪过万(一)看完这篇后端简历优化,包你面试不断
2019-04-30