微信云控系统源码的核心代码实现,和群控系统的区别,以及优势。
2017-12-07 12:57
1146 查看
微信云控系统是相对于微信群控系统而言的,微信云控系统与群控系统的区别在于,微信群控系统是通过usb线控制手机去执行命令,而微信云控系统是通过网络传输命令去执行命令。在微信群控系统中,因为受限于电脑端口的约束,以及adb的约束,一台电脑最多直接控制上百部手机,而在微信云控系统中,一台电脑可以控制成千上万部手机。可以给无数手机下发命令。不会受限于端口这些。
今天我们来详细介绍下微信云控系统源码的核心实现。在微信云控系统中,主要由服务器端,手机客户端,模拟点击实现等部分组成。其系统关键的核心在于服务器端的命令推送到手机上,以及手机接收到命令后执行相应的程序,去模拟人工操作。在开发过程中,我们主要用到的开发语言有:PHP,Android,Java等。
服务器端推送,相信大家都接触过各种各样的第三方推送服务,有极光,个推,百度等等。在我们实现的云控系统中选用的是个推来实现命令的推送。后台设备管理,以及命令参数的下发等等,都是大家都会经常遇到的各种管理系统的开发类似的。其中云控推送的相关代码为
//多推接口案例
public function pushMessageToList($idsArr,$cmd)
{
putenv("gexin_pushList_needDetails=true");
putenv("gexin_pushList_needAsync=true");
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
//消息模版:
// 1.TransmissionTemplate:透传功能模板
// 2.LinkTemplate:通知打开链接功能模板
// 3.NotificationTemplate:通知透传功能模板
// 4.NotyPopLoadTemplate:通知弹框下载功能模板
// var_dump("ssssssssssss");
//$template = IGtNotyPopLoadTemplateDemo();
//$template = IGtLinkTemplateDemo();
//$template = IGtNotificationTemplateDemo();
$template = $this->IGtTransmissionTemplateDemo($cmd);
//个推信息体
$message = new \IGtListMessage();
$message->set_isOffline(true);//是否离线
$message->set_offlineExpireTime(3600 * 12 * 1000);//离线时间
$message->set_data($template);//设置推送消息类型
// $message->set_PushNetWorkType(1); //设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
// $contentId = $igt->getContentId($message);
$contentId = $igt->getContentId($message,"toList任务别名功能");//根据TaskId设置组名,支持下划线,中文,英文,数字
foreach ($idsArr as $k=>$v) {
$target = new \IGtTarget();
$target->set_appId(APPID);
$target->set_clientId($v);
// $target1->set_alias(Alias);
$targetList[$k] = $target;
}
//接收方1
$rep = $igt->pushMessageToList($contentId, $targetList);
return $rep;
// var_dump($rep);
// echo ("<br><br>");
}
Android端相关的命令接收代码为:
在模拟点击,模拟输入的实现过程中,我们主要用到的是UIautomator框架,在这里我们简单提供一些代码,如有需要源码以及想要二次开发的朋友请加V:393231639
public void testDemo() throws UiObjectNotFoundException {
// Good practice to start from a common place
getUiDevice().pressHome();
//UiDevice mDevice = UiDevice.getInstance(getInstrumentation());
// getUiDevice().takeScreenshot(storePath);
//UiAutomation uiAutomation=getUiAutomation();
//Select Home page
// this.getUiDevice().takeScreenshot(storePath)
UiObject homePage = new UiObject(new UiSelector());
homePage = homePage.getChild(new UiSelector().index(1));
homePage.getChild(new UiSelector().index(0)).getChild(new UiSelector().index(1)).click();
homePage.getChild(new UiSelector().index(0)).getChild(new UiSelector().index(1)).click();
//Open setting
UiObject settingBtn = new UiObject(new UiSelector().text("Setting"));
settingBtn.clickAndWaitForNewWindow();
//Close setting
UiObject closeBtn = new UiObject(new UiSelector().index(0)).getChild(new UiSelector().index(2));
closeBtn.clickAndWaitForNewWindow();
今天我们来详细介绍下微信云控系统源码的核心实现。在微信云控系统中,主要由服务器端,手机客户端,模拟点击实现等部分组成。其系统关键的核心在于服务器端的命令推送到手机上,以及手机接收到命令后执行相应的程序,去模拟人工操作。在开发过程中,我们主要用到的开发语言有:PHP,Android,Java等。
服务器端推送,相信大家都接触过各种各样的第三方推送服务,有极光,个推,百度等等。在我们实现的云控系统中选用的是个推来实现命令的推送。后台设备管理,以及命令参数的下发等等,都是大家都会经常遇到的各种管理系统的开发类似的。其中云控推送的相关代码为
//多推接口案例
public function pushMessageToList($idsArr,$cmd)
{
putenv("gexin_pushList_needDetails=true");
putenv("gexin_pushList_needAsync=true");
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
//消息模版:
// 1.TransmissionTemplate:透传功能模板
// 2.LinkTemplate:通知打开链接功能模板
// 3.NotificationTemplate:通知透传功能模板
// 4.NotyPopLoadTemplate:通知弹框下载功能模板
// var_dump("ssssssssssss");
//$template = IGtNotyPopLoadTemplateDemo();
//$template = IGtLinkTemplateDemo();
//$template = IGtNotificationTemplateDemo();
$template = $this->IGtTransmissionTemplateDemo($cmd);
//个推信息体
$message = new \IGtListMessage();
$message->set_isOffline(true);//是否离线
$message->set_offlineExpireTime(3600 * 12 * 1000);//离线时间
$message->set_data($template);//设置推送消息类型
// $message->set_PushNetWorkType(1); //设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
// $contentId = $igt->getContentId($message);
$contentId = $igt->getContentId($message,"toList任务别名功能");//根据TaskId设置组名,支持下划线,中文,英文,数字
foreach ($idsArr as $k=>$v) {
$target = new \IGtTarget();
$target->set_appId(APPID);
$target->set_clientId($v);
// $target1->set_alias(Alias);
$targetList[$k] = $target;
}
//接收方1
$rep = $igt->pushMessageToList($contentId, $targetList);
return $rep;
// var_dump($rep);
// echo ("<br><br>");
}
Android端相关的命令接收代码为:
@Override public void onReceiveMessageData(Context context, GTTransmitMessage msg) { String appid = msg.getAppid(); String taskid = msg.getTaskId(); String messageid = msg.getMessageId(); byte[] payload = msg.getPayload(); String pkg = msg.getPkgName(); String cid = msg.getClientId(); // 第三方回执调用接口,actionid范围为90000-90999,可根据业务场景执行 boolean result = PushManager.getInstance().sendFeedbackMessage(context, taskid, messageid, 90001); Log.d(TAG, "call sendFeedbackMessage = " + (result ? "success" : "failed")); Log.d(TAG, "onReceiveMessageData -> " + "appid = " + appid + "\ntaskid = " + taskid + "\nmessageid = " + messageid + "\npkg = " + pkg + "\ncid = " + cid); if (payload == null) { Log.e(TAG, "receiver payload = null"); } else { data = new String(payload); Log.d(TAG, "receiver payload = " + data);
在模拟点击,模拟输入的实现过程中,我们主要用到的是UIautomator框架,在这里我们简单提供一些代码,如有需要源码以及想要二次开发的朋友请加V:393231639
public void testDemo() throws UiObjectNotFoundException {
// Good practice to start from a common place
getUiDevice().pressHome();
//UiDevice mDevice = UiDevice.getInstance(getInstrumentation());
// getUiDevice().takeScreenshot(storePath);
//UiAutomation uiAutomation=getUiAutomation();
//Select Home page
// this.getUiDevice().takeScreenshot(storePath)
UiObject homePage = new UiObject(new UiSelector());
homePage = homePage.getChild(new UiSelector().index(1));
homePage.getChild(new UiSelector().index(0)).getChild(new UiSelector().index(1)).click();
homePage.getChild(new UiSelector().index(0)).getChild(new UiSelector().index(1)).click();
//Open setting
UiObject settingBtn = new UiObject(new UiSelector().text("Setting"));
settingBtn.clickAndWaitForNewWindow();
//Close setting
UiObject closeBtn = new UiObject(new UiSelector().index(0)).getChild(new UiSelector().index(2));
closeBtn.clickAndWaitForNewWindow();
相关文章推荐
- 微信群控系统的实现原理,微信群控系统源码的核心实现代码
- 微信群控系统源码,微信云控系统源码的升级版,一部手机操作100个微信号的核心源码实现,核心技术架构
- 微信群控系统源码的实现原理,核心源码实现,核心框架。
- 微信云控系统的实现原理,微信云控系统源码之服务器推送的实现及其核心代码
- jQuery.API源码深入剖析以及应用实现(1) - 核心函数篇(1)
- spydroid源码分析(三):rtp包头分析以及代码实现
- 4_用户态与核心态-用两种C代码实现Linux的某个系统调用
- Android 中Home键和Back键监听的区别以及代码实现(附源代码)
- 【C/C++学院】0822-类型转换函数与构造转换函数/类的继承/类的继承以及区别/继承静态成员与静态函数//继承实现代码重用/单继承QT案例/多继承简介以及实战/Gpu编程
- android修改系统源码之实现蓝牙自动配对以及取消开机锁屏
- yii2获取登录前的页面url地址--电脑和微信浏览器上的实现以及yii2相关源码的学习
- 仿照微信的效果,实现了一个支持多选、选原图和视频的图片选择器,适配了iOS6-9系统,3行代码即可集成.
- 正方教务系统课表成绩抓取核心代码解析,你也能实现超级课程表的功能
- strcpy和strncpy的代码实现和区别以及安全性
- 仿照微信的效果,实现了一个支持多选、选原图和视频的图片选择器,适配了iOS6-9系统,3行代码即可集成.
- 深入Protobuf源码-概述、使用以及代码生成实现
- 《当老温遭遇C#》之虚拟主机管理系统 【附核心实现源码】【另可提供中国各大域名服务端接口】[收藏]
- 深入Protobuf源码-概述、使用以及代码生成实现
- android6.0M系统在代码中实现请求以及检查权限。
- 使用ADSI实现IIS管理,WEB站点管理系统核心代码