問題タブ [storage-access-framework]
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.
android - フォルダ パスをコンテンツ URI に変換する方法は?
File 変数がありますが、これは実際にはフォルダー パスです。そのウリを取得したい。私が使用する場合
「file:///mnt/sdcard」のようなものが表示されます。私が取得したいのは、「content://com.externalstorage/」のようなコンテンツ スキーム Uri で、これを DocumentFile で使用できるようにします。
android - Storage Access Framework を使用した ACTION_OPEN_DOCUMENT が重複した結果を返す
Storage Access Framework を使用して画像を選択し、サーバーにアップロードしようとしています。
私が遭遇している問題は、ファイルを選択した後に重複を含む結果が得られることです。
フォルダには 279 枚の写真があります。
ACTION_OPEN_DOCUMENT
279 の結果を返しますが、それらのいくつかは重複しているため、275 の一意の結果が得られることもあれば、268 の結果が得られることもあります。重複はランダムに表示されるため、特定のファイルではありません。
コードは次のとおりです。
}
アクティビティの完全なコードはこちら: https://github.com/Leonti/android-saf-duplicates/blob/master/app/src/main/java/com/example/leonti/googledriveduplicatesdebugging/MainActivity.java
問題を再現できる Android アプリのサンプルは次のとおり です。合計数と一意のエントリ数。
写真を Google Drive から選択するか、Photos から選択するかは関係ありません。ほとんどの場合、結果が重複します。
何が問題なのかわかりません。Androidエミュレーターで同じコードを実行しました(別のアカウントを使用し、このGoogleドライブフォルダーを共有しました)、期待どおりに機能しています-すべての結果は一意です.
Nexus 5X で Android 7.0 を実行しています
助けてくれてありがとう!
android - Java.io.File を KitKat 以降の Android FileSystem に保存する
FLIR カメラから電話の SD カードに熱画像を保存するアプリに取り組んでいます。私は Android Marshmallow を使用しており、FLIR SDK を使用する必要があります。
FLIR SDK にはクラス「フレーム」があります。このクラスには、熱画像を保存するために Java.io.File を必要とするメソッド「Frame.save」があります。これはドキュメントからのものです。
レンダリングされたビジュアル プレビューと埋め込まれたサーマル データを含むサーマル JPEG ファイルを保存します。
私が正しく理解している場合、KitKat 以降では Storage Access Framework を使用する必要があります。だから私はそれを使いました。Intent を送信し、SD カードの選択したフォルダーに Uri を返します。今、トリッキーな部分に。この関数はファイルを作成し、「Frame.save」メソッドの準備が整った Java.io.File を返す必要があります。
関数が返すファイルは読み取り可能または書き込み可能ではありません...それ以外の場合は、ファイルを直接作成しようとすると、次のようになります。
次に、システムは常にこのエミュレートされたフォルダーを提供します。
問題は、パブリック ストレージ スペースに保存されている使用可能な Java ファイルを取得する方法です。お時間をいただきありがとうございます。
android - Storage Access Framework 経由で OTG ファイルを取得する方法
そのため、接続された 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
)?
android - Storage Access Framework (Android Lollipop API 21) でサポートされているファイルの切り捨て操作はありますか?
リムーバブル SD カードのファイルを切り詰める必要があります。ストレージ アクセス フレームワーク (SAF) の制限により、ファイルに対してtruncate(someSize)を直接呼び出すことができず、使用を余儀なくされました。
その結果、例外があります。
ファイル記述子をrwモードで開いた場合、上記のチャネルが書き込み可能でないのはなぜですか? Lollipop! の SAF でファイルを切り詰める別の方法はありますか?