Android 台灣中文網

標題: Xamarin.Form 開發按鍵精靈疑問 [打印本頁]

作者: loxacom123    時間: 2018-12-13 22:34
標題: Xamarin.Form 開發按鍵精靈疑問
目前玩到一些手遊 會想用到腳本的地方

而目前的解決方案是利用 C# ADB 控制手機模擬觸摸

但這方法只能觸摸 無法判定畫面 而且必須連接電腦

現在會寫的Android的軟體只會 Xamarin.Form 用C#寫

就遇到了些問題

不知道如何用出懸浮置頂視窗 跟 如何模擬按鍵&畫面的即時擷取與判斷

請問有哪位大大知道如何寫 或是哪邊有文章可以參考


作者: muska1116    時間: 2018-12-13 23:29
我之前有在站上回答過類似的問題,
使用 WindowManager 把你自己的 Button 或是 View 加到系統層級的 window,
然後圖像辨識部份可以使用 OpenCV 之類的第三方 library。
作者: loxacom123    時間: 2018-12-16 00:50
本帖最後由 loxacom123 於 2018-12-16 00:54 編輯
muska1116 發表於 2018-12-13 23:29
我之前有在站上回答過類似的問題,
使用 WindowManager 把你自己的 Button 或是 View 加到系統層級的 windo ...

謝謝教導

我成功用 WindowManager  做出置頂的懸浮按鈕了

但目前模擬觸摸部分還是有問題

現在是用 Instrumentation 的 SendPointerSync 去模擬觸摸

但只能在主頁面有功能

一旦離開主頁面就會報錯

請問還有哪些可以達到模擬觸摸的方法呢(需要ROOT的方法也可以)
作者: muska1116    時間: 2018-12-16 01:27
如果可以 root 的話,用下面的程式碼來取得 root 權限,然後直接調用 adb 的指令來模擬 touch 事件即可。
Process p = Runtime.getRuntime().exec("su");
作者: loxacom123    時間: 2018-12-16 17:16
muska1116 發表於 2018-12-16 01:27
如果可以 root 的話,用下面的程式碼來取得 root 權限,然後直接調用 adb 的指令來模擬 touch 事件即可。
P ...

試過了

但是只能在我的App在頁面上才能動作

當我切換到其他的App 就無法動作  切回去後才會有

我是寫在一個Service 裡面 在用一個Task

Intent intent = new Intent(this, typeof(Service1));
StartService(intent);

///-------------------------------

void task1()
        {
            while (true)
            {
                Thread.Sleep(500);
                Java.Lang.Process root = Java.Lang.Runtime.GetRuntime().Exec("input tap 500 500");
            }
        }
作者: muska1116    時間: 2018-12-16 23:18
你的程式碼只有直接執行 adb 指令,並沒有 root 權限,
要先取得具有 root 權限的 process,再執行 adb 指令
Process proc = Runtime.getRuntime().exec("su");
DataOutputStream opt = new DataOutputStream(proc.getOutputStream());
opt.writeBytes("input tap 500 500");
opt.flush();
作者: loxacom123    時間: 2018-12-17 22:33
muska1116 發表於 2018-12-16 23:18
你的程式碼只有直接執行 adb 指令,並沒有 root 權限,
要先取得具有 root 權限的 process,再執行 adb 指 ...

謝謝

我成功可以在後台按鍵了

一定要有su權限才能後台嗎  一般沒root的手機就沒辦法嗎

再來想請教一下 sikuli  可以用在 xamarin 上面嗎  還是要用其他圖像辨識

目前想做到可以即時判斷圖像去做點擊
作者: muska1116    時間: 2018-12-17 23:10
因為使用的是需要 root 權限的指令,所以只能在有 root 的手機上執行。
sikuli 因為我沒用過,這部份我可能沒辦法回答你,
圖像辨識因為我只有使用過 OpenCV,所以我也只能推薦你這個XD,
我在 GitHub 上有看過 xamarin 使用的 sdk,你可以去找看看,
如果有涉獵這方面的大神也可以分享一下QQ
作者: dodo8906135    時間: 2019-4-2 00:17
推~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1