問題タブ [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 - ストレージ アクセス フレームワーク - 利用可能なストレージを取得する
ドキュメント ピッカーを起動せずに現在使用可能なストレージを見つけて、ユーザーにディレクトリを選択させることはできますか?
次のようにすべてのストレージ ルートを表示したい:
なんで?
実際、ドキュメントピッカーを介してSDカードのルートディレクトリを選択する必要があることをユーザーに伝える前に、SDカードが利用可能かどうかを知りたいです...
だから私は次のようにしたい:
- SDカードが利用可能かどうかを確認する
- そうでない場合は、何もしない
- SD カードが利用可能な場合は、アプリが SD カードを読み取る権限が必要であることをユーザーに伝え、ストレージ アクセス フレームワークを介して SD カードのルート ディレクトリを選択するようユーザーに依頼します。
USBスティックについても同じことをしたいのですが、その方法はわかっています(USBスティックが追加されたときに通知を受け取るブロードキャストレシーバーが存在し、オンがすでに接続されているかどうかも確認できます)
android - Storage Access Framework - ローカル DocumentFile の最終更新日を設定する
内部ストレージから SD カードにファイルをコピーまたは移動したい。これは、Storage Access Framework (SAF) とDocumentFile
クラスを介して行います...
コピーはストリーム ベースであり、最終更新日を設定するクラスDocumentFile
のような機能はありません。File
ファイルをSDカードに移動/コピーすることを知っているので、ローカルファイルを作成することを知っています。この情報を使用して、の基になるファイルの最終更新日を更新することは何とか可能DocumentFile
ですか?
最終更新日を失うことなく、ファイルを内部ストレージからSDカードに移動/コピーできないようです...
読書 - 仕事
書き込み中 - 機能していません
これは例外で失敗しjava.lang.UnsupportedOperationException: Update not supported
ます...
android - Android Storage Access Framework を使用して Google ドライブ ドキュメントの名前を変更すると、権限エラーが発生する
ドキュメントとやり取りするために、Android のストレージ アクセス フレームワーク (SAF) を使用しています。問題なくドキュメントを検索/読み取り/書き込みできましたが、Google ドライブ ドキュメントで DocumentsContract#renameDocument() を使用して名前を変更しようとすると問題が発生しました。私が投稿したコードは、内部ストレージ内のファイルで正常に動作します。
簡単にするために、サンプルアプリを作成し、github にプッシュしました。そのコードはここにあります: https://github.com/scottTomaszewski/SafExampleとドキュメント自体とのやり取りはこのクラスにあります https://github.com/scottTomaszewski/SafExample/blob/master/app/src/main /java/com/example/safexample/SafDocument.java
Google ドライブの SAF インターフェイスを介して取得した Uri の名前を変更するときに表示されるエラーは次のとおりです (読みやすいバージョン: https://github.com/scottTomaszewski/SafExample/blob/master/README.md )
呼び出しのさまざまな順列を試しました
と
と
もちろん、ACTION-CREATE_DOCUMENT を使用して新しいドキュメントを作成し、古いドキュメントの内容をコピーし、古いドキュメントを削除することで、名前の変更を実行できることにも言及する必要がありますが、これは理想的ではなく、使用したくありません回避策。この #renameDocument は機能するはずです。
どんな助けでも素晴らしいでしょう!
android - Android Marshmallow: SAF によって書き込まれたファイルがすぐには書き込まれない
SAF (ストレージ アクセス フレームワーク) を使用してファイルを SD カードに書き込みます。Marshmallow では、ファイルが実際に書き込まれ、大幅な遅延 (約 10 秒) で更新されます。
私が使用する場合:
ところで。File.length()
メソッドで長さを確認すると、同じ値が返されます。
すぐに書く方法はありますか?または、リスナーを設定できますか?それ以外の場合は、サイズを定期的に確認する必要があり、このようにしたくありません。実際、ファイルが書き込まれてから 10 秒も待ちたくありません。
android - ACTION_CREATE_DOCUMENT の後にファイルが存在するかどうかを検出する
アプリでファイルを作成するときに ACTION_CREATE_DOCUMENT インテントを使用しています。あるユーザーは、警告を受けずに既存のファイルを上書きしたためにデータを失ったと訴えました。
1.) 返されたドキュメントが存在するかどうかを確認する方法はありますか?
2.) これに推奨されるワークフローは何ですか?
android - Android - 新しい Storage Access Framework を使用してファイルを外部 SD カードにコピーする方法
アプリにファイル ブラウザ機能を実装しています。ACTION_OPEN_DOCUMENT_TREE インテントを使用して外部 SD カードの永続的なアクセス許可を取得する方法と、DocumentFile クラスを使用してフォルダーを作成し、ファイル/フォルダーを削除する方法を知っています。
ただし、ファイルを外部のSDカードフォルダーにコピー/移動する方法が見つかりません。正しい方向に私を向けることができますか?
android - Android - DocumentFile クラスを使用したファイル操作には、MediaScanner へのアラートが必要ですか?
これのソースコードをたどって投稿を惜しまないようにしましたが、そこで迷子になりました..
Java File クラスを使用してメディア ファイルを削除または作成した昔は、OS に通知して、メディア データベースに含めるか、メディア データベースから削除する必要がありました。
ここで、DocumetFile クラスをいくつかの目的で使用する必要があります...このクラスは、メソッドdelete()
とcreateFile(String mimeType, String name)
.
を使用してOSに再度通知する必要がありますか
新しいファイルと
ファイルの削除または DocumentFile クラスはそれ自体で行いますか?
私が尋ねている理由は、 createFile() メソッドが入力として mimeType を必要とするためです。mimeType を使用して Media データベースに通知すると思われます。
android - Android:「要素インテントフィルターはここでは許可されていません」内部?
http://developer.android.com/guide/topics/providers/document-provider.html#manifestでは、カスタム ドキュメント プロバイダをマニフェストに登録する方法が示されています。
この <intent-filter> 要素はここで必要ですが、Android Studio は次のように文句を言います:
要素インテント フィルターはここでは許可されていません
また、プロバイダ要素のドキュメントも同様に示しているようです:
これは Android Studio とドキュメントのバグですか、それとも何か不足していますか?