問題タブ [android-usb]

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 投票する
1 に答える
303 参照

java - Android アプリには、USB デバイス上のメディアを読み取る権限が必要です


Android アプリを作成しましたが、最近更新しました。ただし、USB デバイスをどこにも使用しておらず、AndroidManifest.xml のどこにも存在しない場合でも、アプリは USB デバイスからデータを読み取る権限が必要です。私が使用している外部ライブラリは Giftiz API、ADMob API、および AdBuddiz API のみです。更新前は ADMob API と AdBuddiz API のみが含まれていたため、新しいものは Giftiz API ですが、Giftiz API を使用する他のアプリは含まれていません。その許可が必要です。

コード内でその許可を要求している場所を見つける方法はありますか? Android Studioのある種の検索機能? ( Touchty Cube アプリ
へのリンクはこちら)

0 投票する
2 に答える
852 参照

android - この特定のデバイスを UsbManager.getDevicesList() で列挙できないのはなぜですか?

タイトルが示すように、UsbManager.getDeviceList() を使用して、USB 対応の Android フォンで特定の USB デバイスを列挙するのに問題があります。この電話や他の電話で他の USB デバイスの列挙と通信に問題はありませんでしたが、この特定の USB デバイスが見つかりません。また、 USB Device Infoなどのサードパーティ アプリで列挙することもできません。

以下は、PC で適切に列挙された USB プロパティです。外部企業がデバイスが USB 2.0 仕様に準拠していることを認定したことを確認したデバイス メーカーと連絡を取りました。当初、私の疑惑は、他の準拠デバイスに含まれていた iManufacturer、iProduct、および iSerialNumber のフィールドが削除されたため、デバイスが Android によって拒否されたというものでした。ただし、 USB 2.0 仕様のセクション 9.5 からの抜粋を確認すると、これらのフィールドは必要ないようです。

適切な場合、記述子には、人間が読める形式で記述子を説明する表示可能な情報を提供する文字列記述子への参照が含まれます。文字列記述子の組み込みはオプションです。ただし、記述子内の参照フィールドは必須です。デバイスが文字列記述子をサポートしていない場合は、文字列参照フィールドをゼロにリセットして、使用できる文字列記述子がないことを示す必要があります。

私の質問は、UsbManager がこの USB デバイスの列挙を拒否する原因は何ですか? さらに重要なことに、Android にこのデバイスを強制的に列挙させるためにできることはありますか? 理想的には、root アクセスを必要としないソリューションに最も関心がありますが、必ずしも契約を破るものではありません。

USB プロパティ


編集: いくつかのサンプル コード。


編集 2: 私はいくつかの電話でテストしました。次の電話で USB デバイスを正常に列挙しました。

  • 注2
  • LG-V400

次のデバイスはデバイスを列挙できませんでした:

  • ネクサス5
  • ギャラクシー S4、S5、S6
  • LG G2、4G LTE

編集 3: USB デバイスを接続した後、Nexus 5 で呼び出したログを次に示します。adb shell dmesg4 ~ 16 行目で、電話がデバイスの列挙に失敗していることを明確に確認できます。

0 投票する
0 に答える
200 参照

android - USB 電源アダプタを接続すると、Android デバイスがオペレーティング システムで起動します

USB 電源アダプタを接続したときに、Android デバイスをオペレーティング システムで起動したいと考えています。以下に示すように、「/system/bin/lpm」の編集を含むソリューションが SO で利用可能です。

ファイル名のバリエーションは、「../playlpm」および「../ipod」と記されています。ただし、これらのファイルは、最近の CyanogenMod ビルドには存在しません。

/system/bin/ 内のすべてのファイルをチェックしましたが、lpm (低電力マネージャー) に固有のものは見つかりませんでした。したがって、この問題に対して以前に投稿された解決策はどれも適用できません。

この状況を解決するための提案はありますか? ティア

0 投票する
1 に答える
2645 参照

android - USB ドライブからの Android リスト ファイル

私は現在、USBデバイスを一覧表示し、そのUSBデバイスの許可をリクエストしてからそれらに接続できるようにする実用的な実装を持っています(主にhttp://developer.android.com/guide/topics/connectivity/usb/host.htmlから) . 私が持っているコードはリンクされた記事と同じですが、提供されているクラスのメソッドは、デバイス上のファイルを一覧表示したり、ファイルが存在するかどうかを確認したりするためのものではありません。

ただし、USB デバイスにあるファイルを一覧表示して、データを転送する前にファイルが存在するかどうかを確認する方法がわかりません。

デバイスの「パス」は の行に沿って/dev/bus/usb/00xいますが、 から直接アクセスすることはできませんFile。アプリES File Explorerが USB (非ルート化デバイス) 上のファイルを一覧表示できることがわかったので、それが可能であることはわかっています。ES ファイル エクスプローラーのようにURI パスにアクセスしようとusb://100xしましたが、うまくいきませんでした。

Storage Access Framework を使用してみました。Samsung Galaxy Tab では SD カードと USB の両方で動作しますが、Google Nexus 10 ではどちらでも動作しない (SD カード スロットがない) ため、USB と通信する別の方法を実装しようとしています。

バージョンは Lollipop 以上です。

何か案は?ありがとう。

0 投票する
1 に答える
125 参照

android - Androidフォンの充電器のベンダーIDを取得する方法はありますか?

Android 携帯にセキュリティを提供するアプリを考えています。私の考えは、ベンダーIDまたはUSB充電器のある種の一意のIDを保存することです。ペアリングされたデバイスとして機能します。その後、充電器が認証されます。電話が別の充電器で充電されている場合、携帯電話が盗まれたことを示す、事前にロードされた携帯電話番号への SMS をトリガーする必要があります。たぶんそれはばかげた質問です。しかし、私はこれをしなければなりません。Android では、USB 充電器のベンダー ID を見つける方法があります。これを行う方法はありません。知っている人がいれば、これを行う方法を教えてください。前もって感謝します。