香港6合总彩透码主论坛
 找回密码
 注册帐号

扫一扫,访问微社区

薛飞 Unity群控安卓手机的Demo

20
回复
2889
查看
打印 上一主题 下一主题
[ 复制链接 ]
排名
417
昨日变化

21

主题

217

帖子

4133

积分

Rank: 9Rank: 9Rank: 9

UID
686
好友
18
蛮牛币
5357
威望
0
注册时间
2013-7-4
在线时间
1785 小时
最后登录
2019-8-25

专栏作家

QQ

马?#29486;?#20876;,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐?#29275;?a href="member.php?mod=register" title="注册帐号">注册帐号

x
本帖最后由 AWNUXCVBN 于 2019-3-23 09:36 编辑

目前有截图、点击的功能,其他只有测试(划屏,装软件,输入中文)代码,需要修改
[C#] ?#35838;?#26412;查看 复制代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using UnityEngine;
using UnityEngine.UI;

public class Main : MonoBehaviour
{
    private string adbPath;
    private string filePath;
    /// <summary>
    /// 列出设备按钮
    /// </summary>
    public Button btnList;

    public Transform togglePrefab;

    /// <summary>
    /// 所有设备
    /// </summary>
    Dictionary<string, GameObject> advs = new Dictionary<string, GameObject>();
    /// <summary>
    /// 选中的设备
    /// </summary>
    public List<string> sdvs = new List<string>();

    public InputField inputFieldX;
    public InputField inputFieldY;
    /// <summary>
    /// 点击指定位置按钮
    /// </summary>
    public Button btnClick;
    public Image screenImage;
    public Button btnCapture;
    public Button getCapture;

    private void Awake()
    {
        Loom.Initialize();
    }

    // Use this for initialization
    void Start()
    {
        adbPath = @Application.streamingAssetsPath + "/adb.exe";
        filePath = @Application.streamingAssetsPath;
        btnList.onClick.AddListener(ClickList);
        togglePrefab.gameObject.SetActive(false);
        btnClick.onClick.AddListener(ClickPose);
        btnCapture.onClick.AddListener(Capture);
    }

    string StartProcess(string args, Action action)
    {
        Process process = new Process();
        process.StartInfo.FileName = adbPath;
        process.StartInfo.Arguments = args;
        process.StartInfo.CreateNoWindow = true;
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
        process.StartInfo.RedirectStandardInput = true;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.StandardOutputEncoding = Encoding.UTF8;
        process.Start();
        process.WaitForExit();
        if (action != null)
        {
            action();
        }
        return process.StandardOutput.ReadToEnd();
    }

    // Update is called once per frame
    void Update()
    {

    }

    private void OnGUI()
    {
        //if (GUI.Button(new Rect(0, 0, 200, 50), "列出设备"))
        //{
        //    string args = "devices";
        //    UnityEngine.Debug.Log(StartProcess(args));
        //}
        //if (GUI.Button(new Rect(500, 50, 200, 50), "点击"))
        //{
        //    string args = "-s de81f1c shell input tap 400 400";
        //    UnityEngine.Debug.Log(StartProcess(args));
        //}
        //if (GUI.Button(new Rect(500, 100, 200, 50), "手机截屏"))
        //{
        //    string args = "-s de81f1c shell screencap -p /sdcard/screenshot.jpg";
        //    UnityEngine.Debug.Log(StartProcess(args));
        //}
        //if (GUI.Button(new Rect(500, 150, 200, 50), "获取截屏"))
        //{
        //    string args = "-s de81f1c pull /sdcard/screenshot.jpg " + @Application.streamingAssetsPath + "/screenshot.jpg";
        //    UnityEngine.Debug.Log(StartProcess(args));
        //}
        //if (GUI.Button(new Rect(500, 200, 200, 50), "划屏"))
        //{
        //    string args = "-s de81f1c shell input swipe 800 300 200 300";
        //    UnityEngine.Debug.Log(StartProcess(args));
        //}
        //if (GUI.Button(new Rect(500, 250, 200, 50), "安装ADB键盘"))
        //{
        //    string args = "-s 127.0.0.1:62001 install " + Application.streamingAssetsPath + "/ADBKeyboard.apk";
        //    UnityEngine.Debug.Log(StartProcess(args));
        //}
        //if (GUI.Button(new Rect(500, 300, 200, 50), "设置ADB默认键盘"))
        //{
        //    string args = "-s 127.0.0.1:62001 shell ime set com.android.adbkeyboard/.AdbIME";
        //    UnityEngine.Debug.Log(StartProcess(args));
        //}
        //if (GUI.Button(new Rect(500, 350, 200, 50), "输入文字"))
        //{
        //    string args = "-s 127.0.0.1:62001 shell am broadcast -a ADB_INPUT_TEXT --es msg '曹尼玛终于出中文了!'";
        //    UnityEngine.Debug.Log(StartProcess(args));
        //}

    }

    void ClickList()
    {
        string args = "devices";
        string opt = StartProcess(args, null);
        List<string> list = opt.Split(new string[] { "\r\n" }, StringSplitOptions.None).ToList();
        list = list.Where(s => !string.IsNullOrEmpty(s)).ToList();
        if (list.Count < 2)
        {
            return;
        }
        for (int i = 1; i < list.Count; i++)
        {
            string[] dns = list[i].Split('\t');
            string id = dns[0];
            string name = dns[1];
            if (advs.ContainsKey(id))
            {
                continue;
            }
            Transform item = CreateItem(togglePrefab);
            item.Find("Label").GetComponent<Text>().text = "设备ID:" + id + "  设备名:" + name;
            item.name = dns[0];
            item.GetComponent<Toggle>().onValueChanged.AddListener(state => { ToggleClick(state, item); });
            item.gameObject.SetActive(true);
            advs.Add(id, item.gameObject);
        }
        UnityEngine.Debug.Log(opt);
    }

    void ToggleClick(bool state, Transform go)
    {
        if (state)
        {
            sdvs.Add(go.name);
        }
        else
        {
            sdvs.Remove(go.name);
        }
    }

    /// <summary>
    /// 点击
    /// </summary>
    void ClickPose()
    {
        for (int i = 0; i < sdvs.Count; i++)
        {
            string args = "-s " + sdvs[i] + " shell input tap " + inputFieldX.text + " " + inputFieldY.text;
            Loom.RunAsync(() =>
            {
                string opt = StartProcess(args, Capture);
                UnityEngine.Debug.Log(opt);
            });
        }
    }

    /// <summary>
    /// 截图
    /// </summary>
    void Capture()
    {
        for (int i = 0; i < sdvs.Count; i++)
        {
            string args = "-s " + sdvs[i] + " shell screencap -p /sdcard/screenshot.jpg";
            Loom.RunAsync(() =>
            {
                string opt = StartProcess(args, GetCapture);
                UnityEngine.Debug.Log(opt);
            });
        }
    }

    /// <summary>
    /// 获取截图
    /// </summary>
    void GetCapture()
    {
        for (int i = 0; i < sdvs.Count; i++)
        {
            string args = "-s " + sdvs[i] + " pull /sdcard/screenshot.jpg " + filePath + "/screenshot.jpg";
            Loom.RunAsync(() =>
            {
                string opt = StartProcess(args, ShowCapture);
                UnityEngine.Debug.Log(opt);
            });
        }
    }

    /// <summary>
    /// 显示截图
    /// </summary>
    void ShowCapture()
    {
        Loom.QueueOnMainThread(() =>
        {
            StartCoroutine(LoadImg());
        });
    }

    /// <summary>
    /// 加载图片
    /// </summary>
    /// <returns></returns>
    IEnumerator LoadImg()
    {
        WWW www = new WWW("file:///" + filePath + "/screenshot.jpg");
        yield return www;
        Sprite sprite = Sprite.Create(www.texture,new Rect(0, 0, www.texture.width, www.texture.height), Vector2.zero);
        screenImage.sprite = sprite;
        www.Dispose();
        www = null;
    }

    private Transform CreateItem(Transform prefab)
    {
        Transform item = Instantiate(prefab);
        item.SetParent(prefab.parent);
        item.localPosition = Vector3.zero;
        item.localScale = new Vector3(1, 1, 1);
        return item;
    }

    private void OnApplicationQuit()
    {

    }
}

工程地址https://gitee.com/awnuxcvbn/GroupControl


参与人数 1鲜花 +4 收起 理由
baiqi12 + 4 &lt;font style=&quot;vertical-align: inh

查看全部评分总评分 : 鲜花 +4

回复

使用道具 举报

排名
2980
昨日变化

28

主题

2270

帖子

3757

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
173503
好友
3
蛮牛币
1009
威望
0
注册时间
2016-10-5
在线时间
963 小时
最后登录
2019-8-25
沙发
2019-3-23 09:58:07 只看该作者
不明?#36164;?#20160;么意思!!! 能解答一下吗??
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1458/1500
排名
2108
昨日变化

17

主题

223

帖子

1458

积分

Rank: 6Rank: 6Rank: 6

UID
221064
好友
2
蛮牛币
1453
威望
0
注册时间
2017-5-7
在线时间
570 小时
最后登录
2019-8-23
板凳
2019-3-23 11:42:09 只看该作者
怎么收藏帖子呢
回复

使用道具 举报

5熟悉之中
924/1000
排名
5292
昨日变化

17

主题

226

帖子

924

积分

Rank: 5Rank: 5

UID
218853
好友
2
蛮牛币
17448
威望
0
注册时间
2017-4-21
在线时间
417 小时
最后登录
2019-8-24
地板
2019-3-23 16:26:11 只看该作者
?#39029;?#35797;了一下,好像有点问题,不过这好像提供了一个思路,我等会去研究一下,感觉这个应该很有意思
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1162/1500
排名
3542
昨日变化

0

主题

319

帖子

1162

积分

Rank: 6Rank: 6Rank: 6

UID
180321
好友
8
蛮牛币
896
威望
0
注册时间
2016-11-21
在线时间
421 小时
最后登录
2019-8-23
5#
2019-3-25 08:41:08 只看该作者
这个能修改做群控电脑吗?类似教学那种
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1113/1500
排名
10818
昨日变化

3

主题

838

帖子

1113

积分

Rank: 6Rank: 6Rank: 6

UID
310426
好友
0
蛮牛币
1499
威望
0
注册时间
2019-1-2
在线时间
176 小时
最后登录
2019-8-23
6#
2019-3-25 08:53:06 只看该作者
这个很厉害
回复

使用道具 举报

排名
397
昨日变化

0

主题

51

帖子

2319

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
43465
好友
2
蛮牛币
4603
威望
0
注册时间
2014-9-3
在线时间
606 小时
最后登录
2019-8-23
7#
2019-3-25 09:52:16 只看该作者
这个很厉害
回复

使用道具 举报

6蛮牛粉丝
1021/1500
排名
3170
昨日变化

8

主题

114

帖子

1021

积分

Rank: 6Rank: 6Rank: 6

UID
266829
好友
0
蛮牛币
2358
威望
0
注册时间
2018-1-29
在线时间
429 小时
最后登录
2019-8-25
8#
2019-3-25 10:16:59 只看该作者
没有看懂这是什么意思
回复 支持 反对

使用道具 举报

5熟悉之中
924/1000
排名
5292
昨日变化

17

主题

226

帖子

924

积分

Rank: 5Rank: 5

UID
218853
好友
2
蛮牛币
17448
威望
0
注册时间
2017-4-21
在线时间
417 小时
最后登录
2019-8-24
9#
2019-3-25 14:29:25 只看该作者
baiqi12 发表于 2019-3-23 16:26
?#39029;?#35797;了一下,好像有点问题,不过这好像提供了一个思路,我等会去研究一下,感觉这个应该很有意思 ...

失误,可能是这台电脑原因我在其他电脑上能打开
回复 支持 反对

使用道具 举报

4四处流浪
407/500
排名
13484
昨日变化

2

主题

149

帖子

407

积分

Rank: 4

UID
42002
好友
0
蛮牛币
144
威望
0
注册时间
2014-8-26
在线时间
192 小时
最后登录
2019-8-23
QQ
10#
2019-3-25 14:29:25 只看该作者
?#34892;?#27004;主分享
回复

使用道具 举报

6蛮牛粉丝
1113/1500
排名
10818
昨日变化

3

主题

838

帖子

1113

积分

Rank: 6Rank: 6Rank: 6

UID
310426
好友
0
蛮牛币
1499
威望
0
注册时间
2019-1-2
在线时间
176 小时
最后登录
2019-8-23
11#
2019-3-26 08:44:26 只看该作者
{:104:}
回复

使用道具 举报

6蛮牛粉丝
1211/1500
排名
2706
昨日变化

0

主题

101

帖子

1211

积分

Rank: 6Rank: 6Rank: 6

UID
205422
好友
0
蛮牛币
995
威望
0
注册时间
2017-2-7
在线时间
572 小时
最后登录
2019-8-25
12#
2019-3-26 13:13:03 只看该作者
?#34892;?#27004;主分享
回复

使用道具 举报

6蛮牛粉丝
1113/1500
排名
10818
昨日变化

3

主题

838

帖子

1113

积分

Rank: 6Rank: 6Rank: 6

UID
310426
好友
0
蛮牛币
1499
威望
0
注册时间
2019-1-2
在线时间
176 小时
最后登录
2019-8-23
13#
2019-3-27 08:49:55 只看该作者
改版后这种资源就被刷下去了。。。
回复 支持 反对

使用道具 举报

排名
2230
昨日变化

1

主题

1898

帖子

2925

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
119154
好友
0
蛮牛币
3264
威望
0
注册时间
2015-8-21
在线时间
396 小时
最后登录
2019-8-23
14#
2019-3-28 17:29:32 只看该作者
就是通过安卓的调式程序与手机交互,就?#19978;?#23433;键精灵一样,很好玩的。
回复 支持 反对

使用道具 举报

4四处流浪
326/500
排名
17816
昨日变化

0

主题

137

帖子

326

积分

Rank: 4

UID
184198
好友
0
蛮牛币
453
威望
0
注册时间
2016-11-16
在线时间
153 小时
最后登录
2019-7-26
15#
2019-4-17 10:49:25 只看该作者
楼主这是自己做的Demo,还是网?#29486;?#36733;的?#35838;?#30334;度搜索-s de81f1c shell ,然后看到个博客,和你在蛮牛发的两个帖子一模一样
https://www.xuefei.net.cn/  这是博客链接
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

香港6合总彩透码主论坛
彩票双面盘1.995 双色球历史开奖结果 玩彩票的心态怎么稳赚 原创无错36码资料 北京pk10走势图软件 黑龙江福彩22元5走势图 pk10彩票开奖直播 彩票稳赚团队 北京塞车开奖直播 大乐透篮球实时数据统计