位置: 编程技术 - 正文

PC获取手机截图、复制文件、安装APK(手机截取电脑屏幕)

编辑:rootadmin

推荐整理分享PC获取手机截图、复制文件、安装APK(手机截取电脑屏幕),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:电脑手机截图快捷键,手机截取电脑屏幕,手机屏幕截图在电脑的什么文件夹,手机截取电脑屏幕,pc获取手机截图的软件,手机截图用电脑怎么找,手机截图用电脑怎么找,pc获取手机截图的软件,内容如对您有帮助,希望把文章链接给更多的朋友!

PC获取手机截图、复制文件、安装APK(手机截取电脑屏幕)

我在eoe上的帖子的链接

PC获取手机截图、复制文件、安装 ,添加了 从电脑中文件复制到设备、将APK文件安装到设备的功能。(ddmlib.jar这个包在SDK目录下tools中lib文件夹下)

package cc.practise;import java.text.SimpleDateFormat;public class Main { /** * @param args */ public static void main(String[] args) { DeviceManager dm = new DeviceManager(0); //支持多个手机端设备管理,0表示第一个连接的设备 dm.getScreenShot(" "手机截图_"&#;toDateTime(System.currentTimeMillis())); // screenShot.InstallPackage(" dm.getFileList();//获取手机存储目录列表 dm.pullFile("D:\","/mnt/sdcard/","music.aac");//将电脑中 dm.InstallPackage("D:\WoChaCha.apk");//将一个apk文件安装到手机中 } //日期的转换 private static String toDateTime(long time) { //初始化Formatter的转换&#;式。 SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒"); return formatter.format(time); }}[/mw_shl_code]DeviceManager类[mw_shl_code=java,true]package cc.practise;import java.awt.image.BufferedImage;import java.awt.image.RenderedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import com.android.ddmlib.AdbCommandRejectedException;import com.android.ddmlib.AndroidDebugBridge;import com.android.ddmlib.FileListingService;import com.android.ddmlib.FileListingService.FileEntry;import com.android.ddmlib.IDevice;import com.android.ddmlib.InstallException;import com.android.ddmlib.RawImage;import com.android.ddmlib.ShellCommandUnresponsiveException;import com.android.ddmlib.SyncException;import com.android.ddmlib.TimeoutException;public class DeviceManager { public IDevice device ; /** * 构造函数,默认获取第一个设备 */ public DeviceManager(){ AndroidDebugBridge.init(false); device = this.getDevice(0); device.getFileListingService(); System.out.println("设备信息:"&#;"getAvdName"&#;device.getAvdName()&#;"--getName"&#;device.getAvdName()&#;"--getSerialNumber"&#;device.getSerialNumber()&#;"--getProperty"&#;device.getProperty("what")); fileList=device.getFileListingService(); } /** * 构造函数,指定设备序号 * @param deviceIndex 设备序号 */ public DeviceManager(int deviceIndex){ AndroidDebugBridge.init(false); // device = this.getDevice(deviceIndex); } /** * 直接抓取屏幕数据 * @return 屏幕数据 */ public RawImage getScreenShot(){ RawImage rawScreen = null; if(device!=null){ try { rawScreen = device.getScreenshot(); } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (AdbCommandRejectedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ System.err.print("没有找到设备"); } return rawScreen; } /** * 获取图片byte[]数据 * @return 图片byte[]数据 */ public byte[] getScreenShotByteData(){ RawImage rawScreen = getScreenShot(); if(rawScreen != null){ return rawScreen.data; } return null; } /** * 抓取图片并保存到指定路径 * @param path 文件路径 * @param fileName 文件名 */ public void getScreenShot(String path,String fileName){ System.out.println("设备信息:"&#;"getAvdName"&#;device.getAvdName()&#;"--getName:--"&#;device.getAvdName()&#;"--getSerialNumber"&#;device.getSerialNumber()&#;"--getProperty"&#;device.getProperty("what")); RawImage rawScreen = getScreenShot(); if(rawScreen!=null){ Boolean landscape = false; int width2 = landscape ? rawScreen.height : rawScreen.width; int height2 = landscape ? rawScreen.width : rawScreen.height; BufferedImage image = new BufferedImage(width2, height2, BufferedImage.TYPE_INT_RGB); if (image.getHeight() != height2 || image.getWidth() != width2) { image = new BufferedImage(width2, height2, BufferedImage.TYPE_INT_RGB); } int index = 0; int indexInc = rawScreen.bpp >> 3; for (int y = 0; y < rawScreen.height; y&#;&#;) { for (int x = 0; x < rawScreen.width; x&#;&#;, index &#;= indexInc) { int value = rawScreen.getARGB(index); if (landscape) image.setRGB(y, rawScreen.width - x - 1, value); else image.setRGB(x, y, value); } } try { ImageIO.write((RenderedImage) image, "PNG", new File(path &#; "/" &#; fileName &#; ".png")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 获取得到device对象 * @param index 设备序号 * @return 指定设备device对象 */ private IDevice getDevice(int index) { IDevice device = null; AndroidDebugBridge bridge = AndroidDebugBridge .createBridge();// 如果代码有问题请查看API,修改此处的参数&#;试一下 waitDevicesList(bridge); IDevice devices[] = bridge.getDevices(); for (int i = 0; i < devices.length; i&#;&#;) { System.out.println(devices.toString()); } if(devices.length < index){ //没有检测到第index个设备 System.err.print("没有检测到第" &#; index &#; "个设备"); } else { if (devices.length-1>=index) { device = devices[index]; } else { device = devices[0]; } } return device; } /** * 等待查找device * @param bridge */ private void waitDevicesList(AndroidDebugBridge bridge) { int count = 0; while (bridge.hasInitialDeviceList() == false) { try { Thread.sleep(); count&#;&#;; } catch (InterruptedException e) { } if (count > ) { System.err.print("等待获取设备超时"); break; } } } public void InstallPackage(String apkFilePath) { try { device.installPackage(apkFilePath, false, ""); } catch (InstallException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private FileListingService fileList; private FileEntry temp; /** * 测试打印出存储目录列表 * @return */ public String[] getFileList() { fileList=device.getFileListingService(); FileEntry[] arrayFileEntry; try { // String str=fileList.getRoot().findChild(fileList.DIRECTORY_SDCARD).getFullPath(); arrayFileEntry=fileList.getChildrenSync(fileList.getRoot()); // System.out.println("print story path:"&#;fileList.getRoot().findChild(fileList.DIRECTORY_SDCARD).getFullPath()); for (int i = 0; i < arrayFileEntry.length; i&#;&#;) { if(arrayFileEntry.getFullPath().equals("/mnt")) { System.out.println("我找到mnt目录了!"); FileEntry[] array=fileList.getChildrenSync(arrayFileEntry); if(array!=null) for (int j = 0; j < array.length; j&#;&#;) { System.out.println("mnt目录下:"&#;array[j].getFullPath()); } } System.out.println("Path:"&#;arrayFileEntry.getFullPath()); } } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (AdbCommandRejectedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ShellCommandUnresponsiveException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 将一个文件从电脑上复制到手机指定的目录下 * @param localPath:本地的目录 * @param remotePath:手机的目录 * @param fileName:文件名称 */ public void pullFile(String localPath,String remotePath,String fileName) { /* try { FileEntry[] arrayTemp=fileList.getChildrenSync(temp); for (int i = 0; i < arrayTemp.length; i&#;&#;) { if(arrayTemp.getFullPath().equals(remotePath)) { System.out.println("I find ttpod path!"); }else { System.out.println("没有找到设备中的目录:"&#;remotePath); } System.out.println("arrayTemp:"&#;arrayTemp.getFullPath()); }*/ try { device.pushFile(localPath&#;fileName,remotePath&#;fileName); } catch (SyncException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (AdbCommandRejectedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } /*} catch (SyncException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (AdbCommandRejectedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ShellCommandUnresponsiveException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ }}

ORMLite完全解析(四) 官方文档第四章、在Android中使用 官方文档的第四章原标题是UsingWithAndroid,看过前面的文档友友,看到这里可能会有点晕乎,因为从一开始就在介绍ORMLite在Android中的介绍,但是到第四章

android(6) 扇形菜单实现 一.扇形菜单的实现:借鉴了大神们的源码,那我们来看一下扇形菜单是怎么实现的:效果图:主界面布局:RelativeLayoutxmlns:android=

Android 进行单元测试难在哪-part1 原文链接:AgainstAndroidUnitTests原文作者:MatthewDupree译文出自:开发技术前线www.devtf.cn译者:chaossss校对者:tiiime状态:完成正如我在序中所说,在Android中难于进

标签: 手机截取电脑屏幕

本文链接地址:https://www.jiuchutong.com/biancheng/384301.html 转载请保留说明!

上一篇:工具类(4)图片操作工具类(工具的图)

下一篇:ORMLite完全解析(四) 官方文档第四章、在Android中使用

  • 结售汇有金额限制吗
  • 经营性现金流量净额是什么意思
  • 营业成本在资产负债表哪里
  • 哪个税种不需要认定就能在电子税务局申报
  • 居间合同有效期多久
  • 非居民企业出租境内不动产
  • 企业会计核算基础
  • 筹建期结转损益吗
  • 公司租房子出去物业费可以代付吗
  • 外商投资企业清算审计报告
  • 企业购进废旧厂房的分录
  • 免费的产品
  • 应返还财政额度是什么科目
  • 行政单位无形资产入账标准
  • 营业执照原件丢失后果
  • 非营利组织企业所得税政策
  • mac系统的桌面
  • 投入的生产线应该怎么做
  • 冲销货款的会计分录
  • 公司成立之初
  • 生产经营所得投资者减除费用季度申报填吗
  • 第三方检测公司招聘信息
  • php的认识
  • application guard
  • 发票已到货未到会计处理
  • vue3+vite在main.ts或者main.js文件中引入/App.vue报错(/App.vue不是模块)
  • 房产开发企业交房产税吗
  • 企业常用的成本核算方法有哪些
  • 收款凭证和付款凭证区别
  • php正则函数内容匹配
  • 公户发工资必须是员工账号必须是公户开户行吗
  • 卷积神经网络有哪些
  • springboot自带tomcat吗
  • vue快速入门
  • php强大吗
  • 其他权益工具是什么会计科目
  • 财务制度备案信息是不是可以不填
  • 预缴的企业所得税怎么做账
  • 劳务公司承接项目的方案怎么写
  • mongodb主从同步速度
  • 以前年度租赁收入如何处理
  • 纳税人识别号和信用代码一样吗
  • 扣缴义务人如何登录电子税务局
  • MySQL中distinct语句的基本原理及其与group by的比较
  • 报税合同
  • 税收制度政策
  • 合伙企业的利润分配,合伙协议没有约定的
  • 预缴税款留抵是什么意思
  • 补缴上年度所得税的会计分录
  • 企业净资产如何算
  • 住宅可以注册什么类型的公司
  • 职工福利费如何计提
  • 工程预付款的数量取决于
  • 税交多了可以退吗
  • 计提工资是否要交税
  • 生产能量等于什么
  • 如何定义是应付还是应付
  • mysql触发器的作用
  • 删除表s
  • jmeter怎么连接数据库
  • 微软推送windows 11
  • SSDP Discovery Service 是什么可以禁用吗
  • win8系统怎么取消屏保
  • win7系统谷歌浏览器错误代码a00a0017
  • win8.1专业版怎么升级成win10
  • win8系统升级win8.1
  • html5lib
  • 'GL_COMBINE_ARB' : undeclared 'GL_RGB_SCALE_ARB' : undeclared 问题
  • node.js安装教程详细
  • Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x
  • android framework 框架层功能梳理
  • nodejs开发微信小程序
  • 传智播客在线课程
  • jquery 表单
  • 卖废铁分录
  • 税法查询系统
  • 计算车辆购置税公式
  • 电子口岸无纸化网上签约流程
  • 酒店不给住怎么办
  • 生育保险证明去哪里办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设