問題タブ [wpd]
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.
.net - Android デバイス (レスポンダー) からカスタム MTP イベントを生成し、Windows (イニシエーター) でイベントをキャプチャする方法
私は何をする必要がありますか:
- レスポンダー (Android を実行している Beaglebone Black) からカスタム ベンダー拡張イベントを生成し、イニシエーターでイベント通知を取得します。
私が使用しているもの:
- Initiator - Portabledeviceapilib.dll (COM 相互運用) ライブラリのマネージ ラッパーを使用する Windows 7 上の C# .Net アプリケーション。
- テスト レスポンダー 1 - Microsoft による MTP シミュレーター 3.0
- Test Responder 2 - Android Jelly Bean 4.1.1 を実行する Beaglebone Black
私がこれまで取り組んできたこと:
イニシエータとレスポンダの間でエンド ツー エンドの通信が正常に行われています。MTP コマンドを送信し、MTP 応答を取得できます。また、レスポンダーから標準イベント通知を正常に取得できます。
問題
イニシエーターがイベントを正常に起動して受信した場合でも、Android からの USB パケットに MTP イベント コードが表示されません。Android の標準イベント コードをカスタム イベント コードに変更しても、適切なイベント メッセージが表示されます (詳細は後述)。
これまでに行ったこと
レスポンダー側で Android ソース コードを参照すると、 /frameworks/av/media/mtp/mtp.hで定義されている MTP イベント コードが見つかりました。
以下は、オブジェクトの追加/削除用に定義されたイベント ID です。
これらのイベント コードは、MTP 仕様で定義されています。
イニシエーター側でイベントをサブスクライブするために、私はDarene Lewisの記事 (こちら) のガイドラインに従っています。ここで定義された定数のイベントの GUID を使用しています。
ファイルがデバイスに追加されるか、デバイスからファイルが削除されると、MTP イベント通知が起動され、イニシエーターは eventID を定数の 1 つにマップする通知を取得します。私が理解しているように、GUID の最初の 4 バイトはイベント ID に対応しています。
以下は、ファイルの追加および削除イベントの GUID です。
私のテストは、デバイスからのファイルの追加/削除で構成されていました。
シミュレーターを使用すると、イニシエーターは 2 つのイベント通知を正常に取得し、上記で定義した正しい WPD イベントにマップされます。また、これらのイベントコードが USB パケットに表示されることを確認しました。
Android デバイスを使用している場合、イニシエーターは 2 つのイベント通知を正常に取得し、上記で定義した正しい WPD イベントにマップします。ただし、USB パケットのどこにもイベント コードが表示されません。
パケットに MTP イベント コードが表示されていないにもかかわらず、COM 相互運用ライブラリがイベントの通知を正常に取得する方法がわかりません。
パケット内のイベント コードを確認できないため、デバイスからイニシエーターへのカスタム イベント コードの送信をテストできません。
上記の Android MTP イベント コードをベンダー拡張イベント コード用に変更し (MTP 仕様で 0xC000 - 0xC7FF と記述されているように)、デバイスの libmtp を更新して何が起こるかを確認する実験を行いました。
イニシエータがイベントを取得しないことを期待していましたが、驚くべきことに、イベント コードを変更した後でも、COM 相互運用ライブラリはイベントを受信し、正しい GUID にマップしました。
要約すると、Android を使用している場合、USB メッセージに MTP イベント コードが表示されませんが、イニシエータは何らかの方法で通知を正常に取得します。MTP Simulator を使用すると、USB メッセージに MTP イベント コードが表示されます。
c# - WPD C# Windows Phone
Windows Phone の開発は初めてで、ファイルを PC から Windows Phone Documents フォルダーにコピーしようとしています。この記事に書かれていることを読んで試してみましたCopy files with WPD to Windows Phone C# . 元の記事はhttps://dzone.com/articles/creating-apis-for-mobile-iot-appsです。残念ながら、次の行で ArgumentException のエラーが発生しました。
メソッドを呼び出すと、ParentObjectID パラメーターに関連していると思います。
「G:\Documents」を「Windows Phone:\Documents」、「Phone:\Documents」および「Windows Phone:\Phone\Documents」に置き換えようとしましたが、成功しませんでした。
では、Windows Phone デバイスが接続されている "論理ドライブ" を指定するにはどうすればよいですか?
delphi - デバイス インターフェイス イベント、デバイス名の取得
このブログ投稿に基づいて、USB デバイスを検出するコードをいくつか書きました。
すべて正常に動作し、USB デバイスが挿入されたときにイベントを受け取りますが、問題はsDevString
常に空の文字列であることです。また、(適切な GUID 値に設定して) WPD デバイスの検出を試みましたがrDbi.dbcc_classguid
、常に空の文字列を取得することを除いて、正常に動作しますsDevString
。正しいデバイス名を取得するにはどうすればよいですか?
c++ - MTP デバイスを検出するための Windows API はありますか?
既に接続されているデバイスの列挙だけでなく、Windows API を介した MTP デバイスの検出を探しています。
excel - VBA で Windows ポータブル デバイス ファイルを参照する際に問題がありますか?
私は自分の問題の解決策を精力的に探してきましたが、役立つものは何も見つかりませんでした!! ここにいる誰かが私の特定の状況を助けてくれることを願っています...よろしくお願いします!
そのため、在庫をテキスト ファイルとして内部メモリに保存するバーコード スキャナがあります。Windows Mobile デバイス センター 6.1 を使用することで、PC でスキャナ フォルダをナビゲートし、そのテキスト ファイルを開いて、スキャンしたアイテムを確認することができます。
そのテキスト ファイルを開き、在庫の各行を読み取り、それを使用して他のことを行う Excel マクロを作成しています。そのテキスト ファイルをスキャナーで「マイ ドキュメント」などの場所にコピーすると、これまでのところ成功しています。ただし、簡単にして、そのテキスト ファイルをスキャナーから直接開くことができるようにしたいと考えています。
私の問題は、スキャナーへのパスを参照することです。ポータブルデバイスなので、C: などのドライブはありません。代わりに、パスは「Computer\MT2070-ML416147\Application\Inventory\export.txt」のようになります。ただし、入力用にそのパスを開こうとすると、「パスが見つかりません」というエラーが表示されます。
誰かが助けてくれるなら、私はとても感謝しています!! 私が持っているもののコード スニペットが必要な場合は、お知らせください。