问题标签 [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 投票
2 回答
9247 浏览

android - Android:通过 MTP 连接时如何检测 MediaStore 的变化

我对 MediaStore 有很大的问题。当 MediaStore 通过 MTP 更改时,我需要处理事件。我已经有了一个android.intent.action.MEDIA_SCANNER_FINISHED行动接收器,但它只对通用大容量存储 (UMS) 有用。扫描仪不会通过 MTP 启动,因为 MTP 会直接更改 MediaStore 数据库。

请你这么好心并帮助我如何检测这个事件。非常感谢您的帮助!

0 投票
1 回答
700 浏览

linux - 通过 WinXP 上的 MTP - 数码相机而不是便携式设备

我在TI814X 评估板上使用 Meego 的 MTP 代码( Buteo MTP = daemon + functionfs)。连接到 Win7 时,它被检测为便携式设备,我可以打开资源管理器。但在 WinXP 上,它被检测为数码相机,因此我可以打开扫描和图像编辑器,而资源管理器图标是相机。

准备工作:我已将设备类型设置为 0x03(“便携式设备”)。我给了我的设备一个唯一的名称,并在每次尝试从注册表中所有出现的该名称之前删除(否则我的更改不会出现在 Windows 上)。

我已经将“USB View”的输出与我的三星 Galaxy 手机进行了比较,我发现唯一的区别是 bDeviceProtocol,它被手机设置为“1”(违反PTP 的规范)。将此值应用于我的硬件没有任何区别。

打开硬件管理器时,我可以列出Compatible IDs. 在这些 ID 中,三星手机列出

虽然我的设备缺少第一个条目:

手机的服务也WUDRFd仅限于我的设备usbscan

问题:由什么MS_COMP_MTP触发?它是我的 USB-/MTP 配置的一个选项,还是由 vencor/产品 ID 触发的?如何让我的设备使用 ofWUDRFd而不是usbscan

0 投票
1 回答
5310 浏览

path - 如何为 mtp 设备构建路径(可在文件夹浏览对话框中使用)?

我实现了从 windows pc 到 android 设备的文件传输,该设备通过 MTP 连接到计算机。复制实现已准备就绪(我使用了此示例:http ://code.msdn.microsoft.com/windowsdesktop/Portable-Devices-COM-API-fd4a5f7d )。

现在我想改进 UI,我想提供一个文件夹选择对话框,用户可以在其中选择一个 MTP 设备文件夹,我将在其中保存文件(使用 FOS_PICKFOLDERS 的 CLSID_FileOpenDialog 效果很好)。请注意,简单的文件保存对话框不起作用,因为您会从对话框中收到错误消息:“您无法在此处保存”。

文件夹浏览的结果将类似于:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\?\usb#vid_04e8&pid_6860&mi_00#6&2296b879&0&0000#{6ac27878-a6fa-4155-ba85-f98f491d4f33}\ ,SECZ9519043CHOHB,12635222016}{01B8016B-0164-00F2-E100-55012C014001}

usb#vid_04e8&pid_6860&mi_00#6&2296b879&0&0000#{6ac27878-a6fa-4155-ba85-f98f491d4f33}
我知道这是设备,IPortableDeviceManager 使用它作为设备 ID。

SID-{10001,SECZ9519043CHOHB,12635222016}\{01B8016B-0164-00F2-E100-55012C014001}
这是设备上的路径。这些 GUID 是设备对象的 WPD_OBJECT_PERSISTENT_UNIQUE_ID 属性。

有了这些信息,我可以选择设备并在设备中找到文件夹,这样我就可以进行复制了。

我的问题是我还想在设备上的文件夹浏览对话框中选择一个默认目录,但我无法创建上面提到的路径。请注意,如果我将其作为默认路径,它将在正确的文件夹中开始浏览。

有问题的部分是起始 GUID,我无法获得:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

我还查看了注册表。我只在一个条目中找到了这个 GUID:
HKEY_USERS\S-1-5-21-2044730494-4069800027-1247311059-1000\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}\ DefaultIcon
哪个值是这样的:
C:\Windows\System32\imageres.dll,-109
(CLSID 子文件夹包含更多的 GUID,所以我找不到,这是正确的)

你知道如何让这个 GUID 能够构建整个默认路径吗?

0 投票
2 回答
2900 浏览

windows-7 - 如何下载 Windows Media 设备管理器 11 SDK?

我想编译Windows Media Device Manager 11 SDK示例- 但我不知道如何下载它。原始下载链接不起作用 - 在 Windows SDK 中我找不到示例!

EDIT2:我想使用自定义应用程序在 Windows 7 上通过 MTP 访问设备。

0 投票
1 回答
741 浏览

winapi - WPD MTP 数据流挂在 Release

在 Windows 8 下使用 WPD(Windows 便携式设备)API 从与 MTP 兼容的移动设备读取数据时遇到了一个奇怪的问题(尚未尝试任何其他 Windows 版本)。

症状是,在调用通过该函数获取Release的接口时,偶尔会挂起,直到设备与PC断开连接后才返回。IStreamIPortableDeviceResources::GetStreamRelease

经过一些实验,我发现只要读取了流的全部内容,这种情况就不会发生。但如果流仅被部分读取(例如,文件的前 256Kb),它可能看似随机发生(尽管非常频繁)。

这已在 iPhone 和 Windows Phone 8 移动设备上重现,因此它似乎不是特定于设备的。

有没有人遇到过这种问题?更重要的是,除了总是阅读流的全部内容之外,有没有人知道解决它的方法?

谢谢!

0 投票
12 回答
67252 浏览

android - Nexus 4 未通过 MTP 显示文件

我试图简单地将一个简单的 XML 文件写入 SD 卡,我注意到我的 Nexus 4 确实写入了该文件,但它无法通过使用 Windows 7 的 MTP 协议查看。

代码:

我可以使用 Astro 文件管理器查看手机本身的文件:

截屏

但 Windows 看不到它...:

截屏

adb shell目录上显示:

我的 Nexus 4 怎么了?为什么它对 Windows 隐藏我的东西?

0 投票
1 回答
3515 浏览

c# - 如何使用 MTP 从 USB 设备上传和下载数据(设备不是相机)

我希望你能帮助我——我的任务是使用 MTP 将一些文件上传并下载到 USB 设备。

我发现了这个很好的例子: http: //www.codeproject.com/Articles/30726/Transferring-D90-images-with-WIA现在我可以将一些图像从我的智能手机传输到 PC 并且我能够增强这个例子向我提供与设备管理器中相同的设备信息(例如 ID、制造商、PnP ID 字符串等)到目前为止一切顺利。此示例使用 WIA,我想只能从设备传输图像,不是吗?

所以我的问题是 - 将文件上传和下载到通过 MTP 连接的 USB 设备需要什么技术?我花了几天时间询问谷歌,但我发现没有一个可行的解决方案或一个可行的例子。微软在这个问题上没有帮助,他们页面上的大多数链接都已失效。

我希望这里有人可以将我推向正确的方向,以便我解决这个问题。

提前致谢。

0 投票
0 回答
2307 浏览

java - Java MTP library that works on Windows

Does anybody know of a working Java MTP library for Windows? I'm trying to pull/push files into an Android device and I can't use adb. So far I've found jMTP and jusbpmp but neither of them work properly:

  • jMTP successfully recognizes my Android devices but as of this writing there is no support for file transfer of any kind. All I've managed to do is go through the file system.
  • jusbpmp is supposed to be able to but its awfully buggy and fails to recognize some of the devices I'm trying to develop for.

Worst of all: Both projects seem to be dead and buried.

0 投票
0 回答
2744 浏览

python - 如何使用pymtp

我一直试图让我的 GalaxyS3 与 Ubuntu12.04 配合得很好,但无济于事。我已经尝试了一堆不工作的不同应用程序,现在我正在尝试制作一个可以工作的应用程序。

现在我被告知三星用它的新设备做了一些“坏事”,我需要通过 MTP 协议与它交谈,无论出于何种原因,Ubuntu 在默认情况下都无法做到。

我喜欢python,所以我正在尝试使用pymtp。

我目前的问题是pymtp的连接功能失败:

这产生:

0 投票
1 回答
9439 浏览

android - 在 Linux 上使用 MTP 安装 Samsung Galaxy Tab 2 7.0

我正在尝试通过 MTP 将三星 Galaxy Tab2 7.0" 连接到 Debian Wheezy 盒子。https://askubuntu.com/questions/186681/getting-mtp-to-work-with-a-galaxy 上的 askubuntu页面-tab-2-7-0详细说明了我的问题,但建议的补救措施都不起作用。

重申一下,我安装了 mtp-tools 和 mtpfs。mtp-detect 产生这个:

我使用供应商 ID 的值 04e8 和设备 ID 的值 6860 创建了一个 /etc/udev/rules.d/51-android.rules 文件。我完成了上述操作并做到了这一点:

现在做“ls foo”摊位。检查 foo 上面的目录也会停止。如果不执行“killall -9 mtpfs”(类似于处理陈旧的 sshfs 挂载),我将无法恢复命令行。然后我看到这个:

尝试了https://askubuntu.com/a/88630/27480并得到了相同的结果。

来自https://github.com/hanwen/go-mtpfs的 go-mtpfs也失败了:

来自https://github.com/kiorky/jmtpfs.git的 jmptfs也失败了: