香港6合总彩透码主论坛
 找回密碼
 注冊帳號

掃一掃,訪問微社區

薛飛 Unity群控安卓手機的Demo

20
回復
3396
查看
打印 上一主題 下一主題
[ 復制鏈接 ]
排名
417
昨日變化

21

主題

233

帖子

4296

積分

Rank: 9Rank: 9Rank: 9

UID
686
好友
18
蠻牛幣
5491
威望
0
注冊時間
2013-7-4
在線時間
1934 小時
最后登錄
2020-1-15

專欄作家

QQ

馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區。

您需要 登錄 才可以下載或查看,沒有帳號?注冊帳號

x
本帖最后由 AWNUXCVBN 于 2019-3-23 09:36 編輯

目前有截圖、點擊的功能,其他只有測試(劃屏,裝軟件,輸入中文)代碼,需要修改
[C#] 純文本查看 復制代碼
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

回復

使用道具 舉報

7日久生情
4298/5000
排名
2981
昨日變化

33

主題

2579

帖子

4298

積分

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

UID
173503
好友
7
蠻牛幣
1097
威望
0
注冊時間
2016-10-5
在線時間
1190 小時
最后登錄
2020-2-26
沙發
2019-3-23 09:58:07 只看該作者
不明白是什么意思!!! 能解答一下嗎??
回復 支持 反對

使用道具 舉報

7日久生情
1555/5000
排名
2108
昨日變化

17

主題

235

帖子

1555

積分

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

UID
221064
好友
2
蠻牛幣
1660
威望
0
注冊時間
2017-5-7
在線時間
655 小時
最后登錄
2020-2-7
板凳
2019-3-23 11:42:09 只看該作者
怎么收藏帖子呢
回復

使用道具 舉報

5熟悉之中
941/1000
排名
5293
昨日變化

17

主題

226

帖子

941

積分

Rank: 5Rank: 5

UID
218853
好友
2
蠻牛幣
17427
威望
0
注冊時間
2017-4-21
在線時間
435 小時
最后登錄
2020-2-10
地板
2019-3-23 16:26:11 只看該作者
我嘗試了一下,好像有點問題,不過這好像提供了一個思路,我等會去研究一下,感覺這個應該很有意思
回復 支持 反對

使用道具 舉報

6蠻牛粉絲
1227/1500
排名
3543
昨日變化

0

主題

344

帖子

1227

積分

Rank: 6Rank: 6Rank: 6

UID
180321
好友
8
蠻牛幣
528
威望
0
注冊時間
2016-11-21
在線時間
461 小時
最后登錄
2020-1-16
5#
2019-3-25 08:41:08 只看該作者
這個能修改做群控電腦嗎?類似教學那種
回復 支持 反對

使用道具 舉報

7日久生情
1723/5000
排名
10820
昨日變化

3

主題

1367

帖子

1723

積分

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

UID
310426
好友
0
蠻牛幣
2653
威望
0
注冊時間
2019-1-2
在線時間
257 小時
最后登錄
2020-2-21
6#
2019-3-25 08:53:06 只看該作者
這個很厲害
回復

使用道具 舉報

7日久生情
2420/5000
排名
397
昨日變化

0

主題

51

帖子

2420

積分

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

UID
43465
好友
2
蠻牛幣
5107
威望
0
注冊時間
2014-9-3
在線時間
707 小時
最后登錄
2020-2-26
7#
2019-3-25 09:52:16 只看該作者
這個很厲害
回復

使用道具 舉報

6蠻牛粉絲
1115/1500
排名
3171
昨日變化

8

主題

119

帖子

1115

積分

Rank: 6Rank: 6Rank: 6

UID
266829
好友
0
蠻牛幣
2739
威望
0
注冊時間
2018-1-29
在線時間
518 小時
最后登錄
2020-2-13
8#
2019-3-25 10:16:59 只看該作者
沒有看懂這是什么意思
回復 支持 反對

使用道具 舉報

5熟悉之中
941/1000
排名
5293
昨日變化

17

主題

226

帖子

941

積分

Rank: 5Rank: 5

UID
218853
好友
2
蠻牛幣
17427
威望
0
注冊時間
2017-4-21
在線時間
435 小時
最后登錄
2020-2-10
9#
2019-3-25 14:29:25 只看該作者
baiqi12 發表于 2019-3-23 16:26
我嘗試了一下,好像有點問題,不過這好像提供了一個思路,我等會去研究一下,感覺這個應該很有意思 ...

失誤,可能是這臺電腦原因我在其他電腦上能打開
回復 支持 反對

使用道具 舉報

4四處流浪
489/500
排名
13485
昨日變化

2

主題

153

帖子

489

積分

Rank: 4

UID
42002
好友
0
蠻牛幣
396
威望
0
注冊時間
2014-8-26
在線時間
271 小時
最后登錄
2020-1-21
QQ
10#
2019-3-25 14:29:25 只看該作者
感謝樓主分享
回復

使用道具 舉報

7日久生情
1723/5000
排名
10820
昨日變化

3

主題

1367

帖子

1723

積分

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

UID
310426
好友
0
蠻牛幣
2653
威望
0
注冊時間
2019-1-2
在線時間
257 小時
最后登錄
2020-2-21
11#
2019-3-26 08:44:26 只看該作者
{:104:}
回復

使用道具 舉報

6蠻牛粉絲
1404/1500
排名
2706
昨日變化

0

主題

119

帖子

1404

積分

Rank: 6Rank: 6Rank: 6

UID
205422
好友
0
蠻牛幣
1317
威望
0
注冊時間
2017-2-7
在線時間
747 小時
最后登錄
2020-2-25
12#
2019-3-26 13:13:03 只看該作者
感謝樓主分享
回復

使用道具 舉報

7日久生情
1723/5000
排名
10820
昨日變化

3

主題

1367

帖子

1723

積分

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

UID
310426
好友
0
蠻牛幣
2653
威望
0
注冊時間
2019-1-2
在線時間
257 小時
最后登錄
2020-2-21
13#
2019-3-27 08:49:55 只看該作者
改版后這種資源就被刷下去了。。。
回復 支持 反對

使用道具 舉報

7日久生情
3046/5000
排名
2230
昨日變化

1

主題

1991

帖子

3046

積分

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

UID
119154
好友
0
蠻牛幣
3556
威望
0
注冊時間
2015-8-21
在線時間
424 小時
最后登錄
2020-2-8
14#
2019-3-28 17:29:32 只看該作者
就是通過安卓的調式程序與手機交互,就可像安鍵精靈一樣,很好玩的。
回復 支持 反對

使用道具 舉報

4四處流浪
343/500
排名
17817
昨日變化

0

主題

139

帖子

343

積分

Rank: 4

UID
184198
好友
0
蠻牛幣
454
威望
0
注冊時間
2016-11-16
在線時間
169 小時
最后登錄
2019-12-19
15#
2019-4-17 10:49:25 只看該作者
樓主這是自己做的Demo,還是網上轉載的?我百度搜索-s de81f1c shell ,然后看到個博客,和你在蠻牛發的兩個帖子一模一樣
https://www.xuefei.net.cn/  這是博客鏈接
回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊帳號

本版積分規則

香港6合总彩透码主论坛
杠杆炒股公正卓信宝配资优异 新加坡股票指数 精高策略配资 欣龙控股重组最新消息 正虹科技股票 59财进配资 易资配 目前最好的理财产品 私募基金配资 股票的上证指数是什么意思