位置: 编程技术 - 正文

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中使用

  • 开票软件金税盘
  • 什么公司可以核算成本
  • 增值税发票丢失可以用复印件入账么
  • 折扣折让红字发票怎么做账务处理
  • 装修行业开票税率
  • 小微企业季度不超过30万怎么报增值税
  • 农产品收购发票可以跨区域开吗
  • 弥补上年亏损的成语
  • 宾馆收入应按什么计算
  • 商业收入会计分录
  • 无发票材料可以入材料账吗
  • 股东贷款是什么意思
  • 电视台广告费可以抵扣吗
  • 异地承包工程预缴什么税?
  • 建筑业增值税专票抵扣后的税点是多少
  • 医疗机构的界定
  • 办公用品包括啥
  • 反写状态已反写是什么意思
  • 电子税务局里的利润表,本月金额是填累计数吗
  • 预算会计的基本等式为
  • 拍卖所得房产计税依据
  • 小规模自开专票税率是1%还是3%
  • 移动纸质发票
  • 第二季度的利润表报错了,怎么重新报
  • 小米路由器启动不了
  • 在windows七中
  • 暂估成本跨月账务处理
  • win10任务栏怎么隐藏
  • php curl模块
  • schupd.exe - schupd是什么进程 有什么用
  • 招待费审批流程
  • 进项税少入账如何处理
  • php的面向对象
  • vue播放rtsp视频流
  • 外商投资企业和外资企业的区别
  • php框架零基础入门
  • 现金支票应记入什么账户
  • 快递行业规矩
  • ios14.5ipad
  • 投标保证金属于什么费用
  • 回扣没拿到也算违法吗
  • 织梦森林官网
  • 股本金如何归还股东
  • 高速公路费如何查询
  • 行政事业单位工作时间
  • 社保局会给失业人员打电话吗
  • 汇算清缴补缴税款会计分录
  • 申请财产损失会计分录
  • 外购的商品赠送客人是否销售吗
  • 支付货代运费账务处理
  • 专项资金补助经费如何入账
  • 亏损股东现金补偿怎么算
  • 市场营销策划开票品目
  • 开出去的发票
  • 税控开具发票
  • 离职补偿金要交个税吗
  • sqlserver存储过程if语句
  • mysql数据库分区查询
  • SQL Server"错误 21002: [SQL-DMO]用户 * 已经存在问题解决
  • 电脑开机密码忘记了怎么打开
  • win7 双击不能打开文件
  • win7u盘没有安全选项卡
  • win7一直处于开机界面
  • 在linux中使用什么命令可以给命令起别名
  • android开发环境配置
  • 全网最全的小说阅读器
  • win sc
  • 解读css发展历史简述
  • cocos2dx游戏开发
  • unity3d webgl
  • Unity3D游戏开发引擎
  • webview实现有什么用
  • js经典实例
  • jquery选择器的使用
  • 获取已安装应用列表的权限在哪里设置
  • python 如何
  • jquery mobile demo
  • android基础知识入门
  • 如何查询车辆购买信息
  • 12366国税网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设