问题标签 [mtp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
58787 浏览

android - 如何将 Android M 默认 USB 配置设置为 MTP 而不是“仅充电”?

每当我的设备(Nexus 5、Android M Preview 3)通过 USB 连接时,USB 配置始终默认为“仅充电”。

这很成问题,因为我设备上的 USB 端口出现故障,有时会在遇到碰撞时断开连接并重新连接,因此我每次都必须从通知抽屉手动将模式更改为 MTP(媒体传输协议)。

  • 调试模式已启用
  • 开发设置 -> USB 配置设置为 MTP。
0 投票
1 回答
2850 浏览

c# - 如何检测 MTP 设备并开始复制文件?

我有一个 VB 应用程序,它当前检测何时添加外部驱动器(获取驱动器号),并开始从中复制某些文件。非常方便,只需插入相机(比如说),我的应用程序就会提取它需要的文件(可选地从外部设备中删除)。

有些设备,比如说 GoPro Hero4,不使用驱动器号安装,而是显示为 MTP 设备。我的代码没有检测到这一点,这就是我想要的指导。

我应该使用“StorageDevice”类吗?一些 WMI 的东西?开发计划书?

它“似乎”像 StorageDevice 包含我需要的东西,但文档有点高级,我正在寻找一个可靠的例子,最好是在 VB 或 C# 中。对最佳解决方案有什么建议吗?

编辑:感谢其他管理问答的链接,但我认为这在 a)我想检测设备连接事件,而不仅仅是复制文件,以及 b)其他问答上的链接导致项目稀疏记录在案。也许答案就在那里,但我只是想得到一个答案,而不是挖掘源代码,这可能是我需要的,也可能不是我需要的。

0 投票
1 回答
112 浏览

windows-10 - 从 Windows 10 通用应用程序访问 MTP 设备

我无法从 Windows 10 通用应用程序访问 MTP 设备(音乐播放器)。

我可以获取设备根文件夹,但我只能枚举子文件夹,StorageFolder.GetFilesAsync 返回空列表。

我也找不到找到设备总内存和可用内存的方法。

0 投票
1 回答
353 浏览

android - Android和PC之间没有连接

几个月来我一直在努力解决这个问题,但没有成功。

如果没有破解或使用不同的驱动程序(仅手动安装),我无法将任何 Android 设备连接到三星手机旁边的 PC(大容量存储或 ADB)。

我在使用 Sony、Nexus、HTC 和更多中国 Android 手机时遇到了这个问题。

我尝试使用手机随附的默认 USB 驱动程序(ADB 接口),但 windows 无法安装它,因为它看不到该驱动程序与我的设备兼容。我通过在驱动程序的 .inf 文件中插入硬件 ID 来破解驱动程序。这样每部电话都在安装,但这样一些电话可以工作,而另一些则不能(ADB)。对于大容量存储模式,我以某种方式设法将每部手机安装为便携式设备/MTP 设备,这种方式有效,我可以浏览文件夹,而无需访问 ADB。

此问题无法在另一台 PC 上重现;首次连接手机时,它会在我的电脑中显示为大容量存储设备,无需任何操作。如果我提供默认驱动程序,手机也可以通过 ADB 被利用。

每天根据您的需要安装/卸载驱动程序数十次,而不确定它是否会起作用,这非常令人沮丧。

请,如果您知道任何提示我该如何解决这个问题,我将非常感激。非常感谢!

0 投票
1 回答
999 浏览

.net - 如何从 Android 设备(响应者)生成自定义 MTP 事件,并在 Windows 中捕获事件(发起者)

我需要做什么:

  • 从响应者(运行 Android 的 Beaglebone Black)生成自定义供应商扩展事件,并在发起者中获取事件通知。

我正在使用什么:

  • Initiator - Windows 7 上的 C# .Net 应用程序,使用用于portabledeviceapilib.dll(COM 互操作)库的托管包装器。
  • 测试响应程序 1 - Microsoft 的 MTP 模拟器 3.0
  • 测试响应程序 2 - 运行 Android Jelly Bean 4.1.1 的 Beaglebone Black

到目前为止我所做的工作:

我在发起者和响应者之间进行了成功的端到端通信。我可以发送 MTP 命令并获得 MTP 响应。我还成功地从响应者那里获得了标准事件通知。

问题

我在来自 Android 的 USB 数据包中看不到 MTP 事件代码,即使事件已成功触发并由发起方接收。当我将 Android 中的标准事件代码更改为自定义偶数代码时,我仍然会收到相应的事件消息(详情如下)。

到目前为止我做了什么

在响应端,浏览 Android 源代码时,我发现/frameworks/av/media/mtp/mtp.h中定义了 MTP 事件代码。

以下是为添加/删除对象定义的 eventID。

这些事件代码在 MTP 规范中定义。

为了订阅发起方的事件,我遵循Darene Lewis的文章中的指导方针。我将 GUID 用于此处定义的常量中的事件。

当向设备添加文件或从设备中删除文件时,将触发 MTP 事件通知,并且发起者获取将 eventID 映射到常量之一的通知。据我了解,GUID 的前 4 个字节对应于 eventID。

以下是文件添加和删除事件的 GUID。

我的测试包括从设备中添加/删除文件。

使用模拟器时,发起者成功获得两个事件通知,并且它们映射到如上定义的正确 WPD 事件。此外,我确认这些事件代码显示在 USB 数据包中。

使用 Android 设备时,发起者成功获取了两个事件通知,并且它们映射到如上定义的正确 WPD 事件。但是,我在 USB 数据包的任何地方都看不到事件代码。

我不明白 COM 互操作库如何成功收到事件通知,即使数据包不显示 MTP 事件代码。

由于我看不到数据包中的事件代码,因此无法测试将自定义事件代码从设备发送到发起方。

我做了一个实验,修改了上面为供应商扩展事件代码指定的 Android MTP 事件代码(如 MTP 规范中所述为 0xC000 - 0xC7FF),并更新设备上的 libmtp 以查看会发生什么。

我预计发起者永远不会收到事件,但令人惊讶的是,即使在更改事件代码之后,COM 互操作库仍然接收到事件并将它们映射到正确的 GUID。

总而言之,在使用 Android 时,我在 USB 消息中看不到 MTP 事件代码,尽管发起者以某种方式成功获取了通知。使用 MTP 模拟器时,我确实在 USB 消息中看到了 MTP 事件代码。

0 投票
1 回答
415 浏览

ubuntu - Ubuntu 14.04 LTS 未检测到 Moto G2

我想用我的 Moto G2 来学习应用程序开发。我已打开调试器和开发人员设置。它连接到朋友的 Windows 7 PC,但没有连接到我的 Ubuntu 14.04。我也尝试了 MTP 的东西,但没有用。我经历了很多关于这个的解决方案,说编辑 android 规则文件并没有多大帮助,因为我也是 Ubuntu 的新手。请帮忙。

0 投票
1 回答
1606 浏览

php - 如何在php中调用主要的电报api方法

我想使用主电报 apiphp代码登录和管理电报帐户。

我阅读了电报文件并阅读了所有最后的主题和相关问题,例如:

调用 Telegram API 创建 feedreader 机器人

通过基于 Web 的客户端访问 Telegram API

在 PHP 中使用电报 API

在 PHP 中使用电报 API

Telegram API 使用 php 或 javascript 发送消息?

和 .....

如果您的答案是“...使用 bot api”或“...使用电报 cli”,我应该说这不是我的问题的好答案!

我想以不同的用户帐户登录并管理它们。

很多

0 投票
0 回答
276 浏览

android - 如何使用 wpd_Api 将文件复制到设备中的文件夹位置

我想使用 WPD-Api 将文件从我的电脑复制到我的 android 设备。

我可以复制到根文件夹,但我无法复制到根目录中的文件夹。

我试图枚举设备中的内容,但这也不起作用。我尝试使用链接,但没有用。我也在分享我的代码片段

0 投票
1 回答
210 浏览

android - 通过 WIN API 访问 Plug and Play android 设备的文件

让我保持简单的解释。我正在编写一个简单的 Windows 服务,以检测通过 USB 连接到计算机的 android 设备并访问设备的内存以读取相机照片。

使用RegisterDeviceNotification()WIN API,我们可以注册以获取任何设备更改的通知(从计算机中添加/删除的设备)。就我而言,我注册以在 USB 设备连接到计算机时收到通知。dbcv_unitmask因此,当连接卷设备时,我们可以从PDEV_BROADCAST_VOLUME结构中获取使用的驱动器号。这对于 USB 驱动器非常有效。然后,由于已知的驱动器号,我可以访问我的 USB 驱动器。

但是,在我的情况下,android 设备使用 MTP 协议进行连接,Windows 确实识别出一个新的 USB 设备正在连接,但似乎没有为其分配驱动器号。所以,现在我无法以编程方式访问设备的内存。

请让我知道是否可以通过 WIN API 访问 android PNP 设备。

谢谢!

0 投票
1 回答
1245 浏览

c++ - 如何使用 Windows Portable Devices C++ API 获取 MTP 设备公开的文件夹中所有文件(对象)的列表?

可以枚举 MTP 设备文件系统中的所有文件,然后获取系统中每个文件/文件夹的对象 ID。

我的问题是:

  1. 有没有办法判断一个对象是文件还是文件夹?
  2. 找到文件夹后,如何获取其中所有文件(对象)的列表?

我在 msdn 网站上查看了 Programmer's reference page,但没有找到任何相关内容。我错过了什么吗?

谢谢!