电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android開發中如何模擬輸入

瀏覽:24日期:2022-09-20 15:27:49

主要思路是使用 adb shell input指令來模擬按鍵及觸摸輸入。

但是前提是需要root,且華為手機出于安全考慮已經停止了root解碼。所以測試建議換個別的手機。或是直接用AS中的模擬器,用有Google Apis的版本。

input 指令

我們打開adb,進入shell,輸入input可以看到指令的參數說明。

Android開發中如何模擬輸入

其中source一般都是用的默認值可以忽略,我們主要關注的就是后面的command

text:文本輸入;keyevent:鍵盤按鍵;這兩條指令是所有設備通用的。 tap:點擊屏幕;swipe:滑動屏幕;這兩條指令適用于有觸摸屏的設備。 press,roll適用于有觸摸球的設備。模擬輸入

在使用input指令之前我們要先獲取一下root權限。

private void execShellCmd(String cmd) { try { Process process = Runtime.getRuntime().exec('su'); OutputStream outputStream = process.getOutputStream(); DataOutputStream dataOutputStream = new DataOutputStream( outputStream); dataOutputStream.writeBytes(cmd); dataOutputStream.flush(); dataOutputStream.close(); outputStream.close(); } catch (Throwable t) { t.printStackTrace(); } }text

1.輸入之前需要提前獲取焦點。2.輸入有特殊含義的特殊字符,無法直接輸入 需要使用keyevent 如: ’ ’

我們整一個EditText,然后進行text輸入測試。

execShellCmd('input text ’hello,world’');

我們發現少了一個H,在控制臺可以看到日志。

Android開發中如何模擬輸入

可以看到在按下H的時候,EditText沒有獲取到焦點。

Android開發中如何模擬輸入

可能是頁面初始化以后就開始執行輸入操作,此時editText還沒有獲取到焦點,獲取焦點可能存在點延時。所以我們嘗試延遲1s后進行輸入。

private Handler handler = new Handler();private Runnable task = new Runnable() { public void run() { execShellCmd('input text ’hello,world’'); }};// 延遲1s后輸入handler.postDelayed(task,1000);

Android開發中如何模擬輸入

keyevent

execShellCmd('input text ’hello,world’ n input keyevent 68 n input keyevent 21');

輸入hello,world,然后輸入’,然后左移光標

Android開發中如何模擬輸入

常見的keycode可以參見frameworks/base/core/java/android/view/KeyEvent.java

Android開發中如何模擬輸入

tap

android 中坐標系如下圖所示。

Android開發中如何模擬輸入

我們可以打開手機中的 開發者選項 -> 指針位置 來輔助定位,可以再上方看到x,y相對的偏移量。

Android開發中如何模擬輸入

點擊屏幕(100,200)位置。

execShellCmd('input tap 100 200');swipe

滑動屏幕和tap相似只需要傳入兩個坐標即可。后面也可以設置滑動時間(ms),時間越短滑動的相應距離就會越長。

從屏幕(100,200)滑動到(300,400)。

execShellCmd('input swipe 100 200 300 400');

以上就是Android開發中如何模擬輸入的詳細內容,更多關于Android 模擬輸入的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
主站蜘蛛池模板: 工控机-图像采集卡-PoE网卡-人工智能-工业主板-深圳朗锐智科 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 粉丝机械,粉丝烘干机,粉丝生产线-招远市远东粉丝机械有限公司 | MVR蒸发器厂家-多效蒸发器-工业废水蒸发器厂家-康景辉集团官网 | 活性炭厂家-蜂窝活性炭-粉状/柱状/果壳/椰壳活性炭-大千净化-活性炭 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | 球磨机 选矿球磨机 棒磨机 浮选机 分级机 选矿设备厂家 | 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | CCC验厂-家用电器|服务器CCC认证咨询-奥测世纪 | 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 免费网站网址收录网_海企优网站推荐平台 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | b2b网站大全,b2b网站排名,找b2b网站就上地球网 | 全自动变压器变比组别测试仪-手持式直流电阻测试仪-上海来扬电气 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 柔性测斜仪_滑动测斜仪-广州杰芯科技有限公司 | 北京遮阳网-防尘盖土网-盖土草坪-迷彩网-防尘网生产厂家-京兴科技 | 混合生育酚_醋酸生育酚粉_琥珀酸生育酚-山东新元素生物科技 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 仓储笼_金属箱租赁_循环包装_铁网箱_蝴蝶笼租赁_酷龙仓储笼租赁 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | DAIKIN电磁阀-意大利ATOS电磁阀-上海乾拓贸易有限公司 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 游动电流仪-流通式浊度分析仪-杰普仪器(上海)有限公司 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 上海公众号开发-公众号代运营公司-做公众号的公司企业服务商-咏熠软件 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 仿古瓦,仿古金属瓦,铝瓦,铜瓦,铝合金瓦-西安东申景观艺术工程有限公司 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 |