問題タブ [removable-storage]
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 - StorageActionFramework ACTION_OPEN_DOCUMENT は単一のファイルを要求できますか?
StorageActionFramework ACTION_OPEN_DOCUMENT インテントを使用して特定のファイルの情報を要求する方法はありますか? 具体的には、MediaStore から取得した特定のファイルの URI を持っています。書き込みアクセス権があるかどうかを確認し、ある場合は削除したいと思います。さらに、UI なしでこれを行いたいと思います (この特定のコンテキストでは何も必要ありません)。
intent.addCategory (Intent.CATEGORY_OPENABLE)ドキュメントには、たとえば、を使用してファイルのクラスに対してそれを行う方法が記載されています。また、特定の種類のファイルに制限するにはintent.setType ("image/*")、たとえば . しかし、特定のファイルに制限するものは何もありません。
また、StorageActionFramework から一連のファイルを受け取ると、個々のファイルのプロパティを表示できることにも気付きました。
ACTION_OPEN_DOCUMENT を使用して SAF の URI を取得できれば、それを使用DocumentsContract.deleteDocument()して削除できるようです。
より多くのコンテキスト
私の状況では、ユーザーはアプリ内からカメラ アプリを呼び出して、1 枚以上の写真を撮りました。次に、私のコードは MediaStore にクエリを実行して、新しい画像のファイル名を決定します。次に、ファイルをアプリ固有のディレクトリに移動したいと考えています。これは、「内部」ストレージと「外部」ストレージにあるファイルでは問題なく機能しますが、リムーバブル ストレージでは機能しません。
長期的には、このソリューションは明らかに多くの永続的なストレージを使用するため、不適切です (ただし、ストレージ サイズが急速に増加しているため、これは緩和されます)。ただし、私のアプリは、アプリ経由で取得した画像ファイルを制御する必要があるため、それらをリムーバブル ストレージに残すと、アプリが破損する可能性があります。
もう 1 つの複雑な要因は、複数の写真を撮影して所定の場所に保存するための Android API がないことです。1 枚の写真を撮るための API がありますが、それは私のアプリケーションでは機能しません。したがって、私は、カメラ アプリがファイルを必要な場所に保存し、後でそれらを移動できるようにするしかありません。
他の一部のアプリは、単に写真のコピーを作成し、そのコピーをプライベート ディレクトリに保存します。私はそれを行うことができますが、それはストレージの問題をさらに悪化させます. 長期的な解決策は、おそらくローカル プライベート キャッシュと組み合わせてクラウド ストレージを使用することです。
usb - 破損した USB の修正?(0 バイト使用済み/フリー)
問題
最近、16Gb USB (クリスマス用) を入手しましたが、プログラムを USB にコピーしようとした後、動作しなくなりました。
症状(以下のスクリーンショット)
プロパティ メニューの下に 0 バイトの空きおよび使用済みと表示され、デバイスはディスク管理の下に表示されますが、完全に空白です。さらに、フォーマットしようとすると、ディスクが存在しないというエラー メッセージが表示されます。ドライブ H:。
ファイルを転送しようとするまで USB が正常に動作していたため、プログラム (cyberghost) を USB に移動しようとすると問題が発生したことがわかっています。
何が役に立ちますか?
USB を復元できるかどうかを調べています (USB 上のファイルを失うことは気にしません)。可能であれば、どのように?
事前に感謝します。スクリーンショットを以下に示します。



