Http远程控制App
Http远程控制App
最近有项目需求通过远程http来控制android app,首先需要在app中内嵌http服务,开始考虑用jetty,后来发现有更加轻量级的NanoHttpd组件,GitHub地址:https://github.com/NanoHttpd/nanohttpd
用起来比较轻便,最终通过在启动app时启动一个Service 实例化NanoHttpd ,在开发中遇到一个问题就是App有多个Activity, Service 调用Activity 中的方法,可能大家想到最简单的做法是通过广播来实现,因为 Service和Activity属于两个进程,在android中最简单的进程调用就是通过广播来实现。
但是有个问题就是广播延迟比较严重,为了解决延迟问题。最终选择了通过两个AIDL 接口来实现,用一个AIDL作另一个的会调接口。具体做法如下:
IClientCallBack.aidl
// IClientCallBack.aidl
package com.test.application;// Declare any non-default types here with import statementsinterface IClientCallBack {/*** Demonstrates some basic types that you can use as parameters* and return values in AIDL.*/int getResult(String action);
}
IGetData.aidl
// IGetData.aidl
package com.test.application;
import com.test.application.IClientCallBack;// Declare any non-default types here with import statementsinterface IGetData {/*** Demonstrates some basic types that you can use as parameters* and return values in AIDL.*/void register(IClientCallBack callback);
}
MainService .java
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.annotation.Nullable;
import com.test.application.IClientCallBack;
import com.test.application.IGetData;import java.io.IOException;/*** MainService.*/
public class MainService extends Service{MainService mainService;/*** HttpServer.*/public static HttpServer mHttpServer = null;public static IClientCallBack callBack;@Nullable@Overridepublic IBinder onBind(final Intent intent) {return mBinder;}@Overridepublic boolean onUnbind(Intent intent) {return super.onUnbind(intent);}@Overridepublic void onCreate() {}@Overridepublic void onDestroy() {}/** MsgBinder.*/public class MsgBinder extends Binder {/*** Service.* @return Service*/public MainService getService() {return MainService.this;}}IGetData.Stub mBinder= new IGetData.Stub(){@Overridepublic void register(IClientCallBack mcallback) throws RemoteException {callBack = mcallback;mHttpServer.setCallBack(callBack);}};}
Http远程控制App相关推荐
- 一个又离不开的软件:图形化远程控制APP向日葵
文章目录 图形化远程控制软件:向日葵 1. 基本介绍: 1.1 使用平台 1.2 最重要的四项功能(免费) 2. 操作示例:win10远程控制Ubuntu18.04 2.1 下载软件并注册用户 2.2 ...
- 安卓手机远程控制app
用一台安卓手机完全控制另外一台安卓手机,想一想是不是很酷炫,那么今天他来了 安卓手机远程控制app下载地址58588.goho.co
- 0代码定制物联网远程控制APP——物联网平台ThingsCloud简单入门
ThingsCloud与阿里云物联网平台类似,比较重要的特点是可以按照自己的设备实际情况和需求0代码定制APP,包括安卓.IOS以及微信小程序等,对需要做课程设计或者想浅尝远程控制的同学非常友好. 可 ...
- fusion app 网页远程控制app
拥有此网页,即可.远程控制软件里面的公告更新以及其他内容. 网页并无联系方式,请自己摸索. 从此即可摆脱, QQ收藏,微云,讯飞语记的束缚! 使用本程序网站放再多的内容都不会乱码! FA2和1都可以使 ...
- 水贝风机远程控制app
- Windows远程控制家里的电脑
一.需要的设备 硬件 一台电脑(被控制) 另一个电脑或手机(控制端) 家用路由器(可选) 软件 远程桌面连接(Windows自带) microsoft Remote Desktop(又称RD Clie ...
- ToDesk远程控制
实现远程控制有多简单? https://www.todesk.com/download.htmlhttps://www.todesk.com/download.htmlhttps://www.tode ...
- 远程控制向日葵下载与使用(巨细节)
1.向日葵简介 此篇博文写的很好,可直接查看向日葵远程控制 简单说向日葵的作用是:远程控制另一台电脑 2.下载 1.进入官网,点击下载向日葵远程控制app 补充:查看电脑位数 右键"这台电脑 ...
- ccxprocess用不用自启_远程开机加远程控制,游戏玩家用这款智能插座超实用
我很早就开始接触智能插座了,记得我手里第一款支持APP控制的插座是网上众筹,不过没多久这家公司倒闭了,插座的远程功能也停止维护了:后来家里折腾智能家居,就开始用米家的智能插座,感觉确实很方便.去年魔兽 ...
最新文章
- 一致性哈希算法及其在分布式系统中的应用
- CCF 202104-4 校门外的树 Python
- anaconda和vscode配置python_vscode配置anaconda3的方法步骤
- Oracle---对字段进行修改(varchar2修改clob)+ 索引失效
- Ollydbg使用教程学习总结(三)
- hexo部署成功但是没效果_使用 Hexo+GitHub 搭建个人免费博客教程(小白向)
- 深度神经网络移动终端GPU加速实践
- 新员工入职表_入职培训流程,五大步骤让员工顺利上岗,来之能战战之能胜
- php.ini $ phphome,shell 脚本安装PHP扩展的简单方法
- [转载] Numpy数组对象ndarray
- jQuery-EasyUI
- 什么是Redis?什么是nosql?NoSQL数据库的四大分类
- linux下文件去重
- 华为云PBX_基于华为云客服平台打造的比特百灵鸟AI管家解决方案发布
- 好用的计算属性clac
- android刷脸支付宝,安卓手机可以支付宝刷脸吗 刷脸登陆安卓机能用吗
- uniapp—— 微信小程序ios上音频播放没有声音
- java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署
- 博弈论与信息经济学-重复博弈
- 【线代】 线性方程组的解