C#: Android手机控制

3

在WinForm应用程序中,通过USB控制/接口连接Android手机是否可能?是否有任何库可以实现此功能,而不使用任何原始的Android工具(ADB、fastboot)?


你为什么想通过USB与手机通信?为什么不使用Web服务或其他标准协议呢? - Cheryl Simon
你认为“控制(与接口)”是什么意思?你认为“标准化应用程序”是什么意思? - CommonsWare
1
你认为“USB”是什么意思?你认为“臭虫”是什么意思? - Jimmy Hoffa
我的目标是创建一个C#前端(或称之为PC套件)适用于安卓手机。"标准化的应用程序"是我的责任,我考虑了一些库,这些库可以开发出我想要的功能(因此以多种方式控制手机,询问已安装的应用程序、联系人、信息等,还可以像ADB一样进行控制)。"控制"和"接口"是两个独立的术语,"控制/接口"将是一个好表达。 - fonix232
你好,fonix232,你找到那个库了吗? - Vitali Petrov
2个回答

6

试试Managed Android Debug Bridge

它使用C#编写,介绍如下:

这是Android Debug Bridge的托管版本,允许.NET应用程序与Android设备进行通信。这包装了ddms使用的与ADB直接通信的相同方法。这比启动adb进程并执行其内置命令更灵活,为开发人员提供了更多选择。


1
Android 中唯一支持的 USB 是 adb 和 USB 大容量存储。两者都不能让您与设备上的应用程序通信,但都可以访问 SD 卡上的文件。adb 可能提供其他功能,但您无法访问“已安装的应用程序、联系人、消息”。尽管如此,这些都不是为 C# 设计的,但如果您愿意,可以调用 adb 命令行可执行文件。
对于您的部分目标来说,基于网络的协议可能是最简单的选择。对于相同的子集,蓝牙协议也是可行的。

我看到了一些用C#编写的应用程序可以做到这一点,但不幸的是它们不是开源的或者不完整。例如,Android Manager(已经停止维护,只有一个预览版,beta可执行文件丢失)。 - fonix232
基本上我想要的是一个在C#中的ADB端口。这样可以与手机通信,请求指定数据等等。但似乎还没有人做过这样的事情。 - fonix232
adb的源代码在这里某个地方被隐藏了,我找了一会儿,但没能立刻找到。你可以在http://android.git.kernel.org/上寻找端口。此外,它仍然是开源的,所以你可以将adb.exe包含在你的应用程序包中,并对其进行系统调用以完成你的任务。用户不需要安装Android SDK,只需要驱动程序即可。 - Nathan Schwermann
是的,我可以打电话,但仍然需要一个C#绑定/完全移植将非常好,并且更加有用,因为不需要可执行文件,只需要一个WinForm应用程序本身。此外,我有源代码,但它相当复杂:S - fonix232
@fonix232:您无法使用adb shell在常规生产设备上访问您所描述的任何内容。您肯定不能“做任何事情”。您可以轻松通过自己的非root Android手机进行测试。 - CommonsWare
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接