0

そのため、接続された USB OTG ドライブから非常に特定のファイルを読み取りたいと考えています。これは、USB スティックに保存する必要があるテキスト ファイルであり、特定の名前を持つそのファイルを読み取る必要がありますmyFile.txt。この種のユーザー入力の取得が愚かでユーザーフレンドリーではないことは理解していますが、それを実装するように言われています。

しかし、私の問題は、USB ドライブのマウント ポイントが多数あることです。私の電話では です/storage/USBStorage1が、友人の場合は/storage/[HEX_ID]です。私はそれらすべてを取得しようとしましたが、それは不可能です。/mnt/media_rw/[HEX_ID]ルートアクセスが必要なNexus携帯電話にマウントします。

少し検索してSAFを見つけましたが、それを使用してユーザーが直接選択せずにファイルを開く方法については何も見つかりませんでした。ピッカーを表示したくありません。存在するかどうかを確認したいだけ[USB_OTG_PATH]/myFile.txtで、存在する場合は読みたいです。

余談ですが、フォルダーを読み取るにはルートアクセスが必要ですか/mnt(を除くmedia_rw)?

4

1 に答える 1

0

ユーザーが直接選択せずにファイルを開くために使用する方法については何も見つかりませんでした

これには選択肢がないからです。

[USB_OTG_PATH]/myFile.txt が存在するかどうかを確認したいだけで、存在する場合はそれを読みたいです。

それはサポートされていません。

getExternalFilesDirs()ファイルが、getExternalCacheDirs()、およびgetExternalMediaDirs()によって返されるディレクトリのいずれかにある場合、通常の Java ファイル I/O を使用して直接アクセスできます。ただし、私の知る限り、そのディレクトリはアプリの実行の一部として作成する必要があります — 別の開発者は、事前にディレクトリを作成しようとして問題に遭遇しました. したがって、あなたのユースケースでは、このアプローチは実用的ではありませんが、運が良ければ私は間違っていて、あなたにとって役立つことがわかります.

/mnt フォルダー (media_rw を除く) を読み取るには root アクセスが必要ですか?

一般的には、はい。ただし、実際にはデバイスや Android OS のバージョンなどによって答えが異なります。

于 2016-11-15T15:50:10.953 に答える