安卓手机和.NET之间的简单交互

我们通常都了解,安卓手机作为移动端和电脑PC端的连接在.NET环境下用的最多的是ADB。没错,今天做的一个小测试中,使用到了友好的插件,在此记录,作以分享。

首先怎样解决PC端和安卓手机的连接?

参考:

  1. http://blog.csdn.net/zhongchengxi/article/details/73655757
  2. http://blog.csdn.net/ynnmnm/article/details/38415221

上面的两篇博客都优秀的向我们展示了ADB的基本用法。

现在是时候解决.NET环境下怎么使用ADB与安卓手机连接?

有两种思路:

1.既然可以使用命令行去操作ADB从而实现对安卓手机基本信息的获取和基本功能的控制,那么完全可以用同样的方法将其使用在.NET的环境下即可。在C#中使用Process类从而相当于操作命令行。

Process p = new Process();//创建进程对象
p.StartInfo.FileName = "cmd.exe";//设定需要执行的命令
// startInfo.Arguments = "/C " + command;//“/C”表示执行完命令后马上退出
p.StartInfo.UseShellExecute = false;//不使用系统外壳程序启动
p.StartInfo.RedirectStandardInput = true;//可以重定向输入
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;//不创建窗口
p.Start();

2.使用VS中的插件与ADB结合使用。

  • 下载插件在VS的当前项目中

  • 简单的使用案例
//Starting the adb server
AdbServer server = new AdbServer();
var result = server.StartServer(@"C:\Program Files (x86)\android-sdk\platform-tools\adb.exe", restartServerIfNewer: false);//List all Android devices currently connected
var devices = AdbClient.Instance.GetDevices();foreach(var device in devices)
{Console.WriteLine(device.Name);
}//Subscribe for events when devices connect/disconnect
void Test()
{var monitor new DeviceMonitor(new AdbSocket(new IPEndPoint(IPAddress.Loopback, AdbClient.AdbServerPort)));monitor.DeviceConnected += this.OnDeviceConnected;monitor.Start();
}void OnDeviceConnected(object sender, DeviceDataEventArgs e)
{Console.WriteLine($"The device {e.Device.Name} has connected to this PC");
}
//Manage applications
void InstallApplication()
{var device = AdbClient.Instance.GetDevices().First();PackageManager manager = new PackageManager(device);manager.InstallPackage(@"C:\Users\me\Documents\mypackage.apk", reinstall: false);
}
//Send or receive files
void DownloadFile()
{var device = AdbClient.Instance.GetDevices().First();using (SyncService service = new SyncService(new AdbSocket(new IPEndPoint(IPAddress.Loopback, AdbClient.AdbServerPort)), device))using (Stream stream = File.OpenWrite(@"C:\MyFile.txt")){service.Pull("/data/local/tmp/MyFile.txt", stream, null, CancellationToken.None);}
}void UploadFile()
{var device = AdbClient.Instance.GetDevices().First();using (SyncService service = new SyncService(new AdbSocket(new IPEndPoint(IPAddress.Loopback, AdbClient.AdbServerPort)), device))using (Stream stream = File.OpenRead(@"C:\MyFile.txt")){service.Push(stream, "/data/local/tmp/MyFile.txt", 444, DateTime.Now, null, CancellationToken.None);}
}
//Run shell commands
void EchoTest()
{var device = AdbClient.Instance.GetDevices().First();var receiver = new ConsoleOutputReceiver();AdbClient.Instance.ExecuteRemoteCommand("echo Hello, World", device, receiver);Console.WriteLine("The device responded:");Console.WriteLine(receiver.ToString());
}

以上这些操作大致满足了我们PC端和安卓手机的基本交互,如果想进一步深入实现更多的功能,有两种方式,不难猜出,一种是执行命令行操作在.NET环境下,另一种是了解插件下类分装的相关方法和成员。

分享有价值的东西!

安卓手机和.NET之间的简单交互相关推荐

  1. iphone屏幕镜像连电视_手机股票行情:在电视上投射或镜像安卓手机屏幕的三个简单步骤...

    无论您是流电影,参加视频通话还是在电视上玩自己喜欢的游戏,将Android手机的显示屏镜像到电视机都是值得采取的步骤. 休息一下 您可以使用Chromecast设备或Android TV将Androi ...

  2. android手机照片恢复,安卓手机照片怎么恢复?简单恢复方法分享

    安卓手机照片怎么恢复?手机作为中国微信用户强大的社交工具,可以说手机相机已成为人们生活的重要部分,不小心误删手机相册照片或者微信等图片,我们在使用手机过程中是不可避免的,别担心,小编有办法恢复的,下面 ...

  3. 安卓手机和电脑之间传文件最方便的方法

    市面上利用WIFI在手机和电脑传文件的软件,总是要你去下载一个非常变态的电脑客户端.那种客户端在你电脑上装很多恶心的驱动,而且你每次连接手机,都会弹一大堆窗口. android手机是一个小型电脑,具有 ...

  4. 安卓手机投屏软件_安卓手机投屏竟然这么简单,每个安卓手机都可以!

    很多人问到安卓系统的手机怎么投屏的问题,因为除了一些新款手机.以前的老版安卓手机很多是不自带投屏功能的,那么对于以前的老版安卓手机而言,怎么做到投屏呢?其实这个问题非常容易解决,不多说,我们来看下解决 ...

  5. Django Model View Template 之间的简单交互 (二)

    前言 接续前文,上一篇文章主要涉及了 Django 项目的基础配置等,这篇主要涉及数据库相关的 ORM ,也就是 Django 中的 Model 的使用,MVT 三层之间的交互 教程基本都是东拼西凑的 ...

  6. 电脑连接移动设备android驱动程序,安卓手机连接电脑操作最简单的方法介绍

    华为手机怎样与电脑连接?想要让华为手机连接计算机,最快的方法无疑是使用数据线,不用借助第三方工具,可直接连接计算机管理文件,当然,你也可以使用无线网来连接,只不过这类连接首先需要下载连接媒介. 华为手 ...

  7. 多个安卓设备投屏到电脑_华为手机可以投屏到电脑,那其他安卓手机呢?其实非常简单...

    手机投屏的问题其实已经有多种解决方案了,尤其是Win10系统,非常方便!当然如今的手机也逐步的加入手机投屏到电脑的功能,如华为Mate30.今天就来给大家分享一下Win10的投屏功能,不知道怎么投屏的 ...

  8. 安卓手机自动化一些工具的简单介绍

    工具1Monkey: 工具介绍:Monkey是一个程序,运行在您的模拟器或设备上,并生成伪随机的用户事件流,如点击,触摸或手势,以及一些系统级事件. 您可以使用Monkey以随机但可重复的方式对您正在 ...

  9. android版本如何升级包,安卓手机系统怎么升级?安卓手机系统升级教程

    安卓手机系统怎么升级 随着系统的更新换代,相信不少网友对安卓系统的升级都很感兴趣,而这里指的一般都是通过刷机来升级,好像不刷就浑身不舒服一样.安卓系统升级可以在电脑上面下载官方的升级包,或者像小米系统 ...

最新文章

  1. 【linux】route使用小结
  2. 把libreoffice集成到网页中_Python3.7.3安装教程并集成Sublime Text3
  3. iOS获取缓存文件的大小并清除缓存
  4. python入门知识大全_python基础知识有哪些
  5. C#LeetCode刷题之#645-错误的集合(Set Mismatch)
  6. 以太坊geth区块链私链建立
  7. 系统学习NLP(二十八)--GPT
  8. 如何让内容页调用样式表?
  9. C语言视频教程(初学C语言,还是看视频更直观)
  10. burp放包_详解BurpSuite软件 请求包 HTTP (9.23 第十天)
  11. opencv3 与opencv2不同之处
  12. calibre怎么把HTML转换mobi,calibre:mobi格式转换成pdf格式 | 求索阁
  13. 传统立体匹配相似性测度笔记(更新中)
  14. 一天一个西红柿,健康多多
  15. caffe中各种loss函数
  16. 应用程序无法启动,错误代码0xc0000142
  17. 社工,定位聊天对象的真实地址
  18. phpbreak跳出几层循环_PHP break:跳出循环
  19. 网站建设(3)——CDN及CDN加速原理
  20. (立下flag)每日10道前端面试题-15 关于【高级技巧】十问

热门文章

  1. Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking
  2. Xilinx FPGA FFT 应用笔记
  3. 【非技术】谈谈简历那些事儿
  4. 环信聊天记录的完整代码
  5. 视角 | 多容器环境下的日志管理难?有人做起了这个生意
  6. 致大学(一)大学几年私藏的学习网站和实用工具(上)
  7. 女孩,当你说没有好男人时请看看
  8. 【尚观】Android游戏与应用开发最佳学习之路_转载来学习Android
  9. c语言 网络授权 破解,[授权码]苹果Mac平台C程序的防盗版功能和License授权管理...
  10. Elf动态解析符号过程(转载) - *nix文件格式 - j4ckl1u