問題タブ [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.

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

android - ContentResolver には、ファイルの作成直後のクエリで作成されたばかりのイメージが含まれていません。

このコードを使用して、画像をコピーしていますdocumentFile.createFile()

これはContentResolver、画像を作成した後にクエリを実行して、新しく作成された画像の情報を含むクエリの結果で画像ギャラリーをすぐに更新する方法です。

しかし、即時クエリでは、新しく作成されたイメージが見つかりませんでした。しばらくしてからクエリを再度実行すると、新しく作成された画像が結果に表示されます。

新しく作成されたイメージの情報を提供するのに時間がかかるようですContentResolver(ContentResolver が担当している場合)。これは、即時クエリを実行している間、バックグラウンドで実行されるためです。

新しく作成されたイメージがいつ登録されるかを知る方法またはリスナーはありますContentResolverか?

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

android - SAF (ストレージ アクセス フレームワーク) はどのように USB スティックを認識しますか?

Android 6.0.1、API 23、

一致するすべてのドキュメント プロバイダー (USB スティックを含む) を表示する SAF ピッカーに、Android フォンに接続された USB スティックを表示するにはどうすればよいですか?? さらに、USBポータブルストレージにファイルとフォルダーを作成するためにSAFをセットアップする方法??

SAF-documentationから、私は試しました:

しかし、USB ポータブル ストレージはピッカーの選択肢の一部ではありません...

何が欠けていますか?必要な手順を示すサンプル プロジェクトはありますか?

@CommonsWare:ここに目的のスクリーンショットがあります:

ここに画像の説明を入力

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

android - 永続性が設定されていてもドキュメント ピッカーが表示され続ける (SAF - ストレージ アクセス フレームワーク)

Android 6.0.1、API 23、

ユーザーが SAF ( Storage Access Framework )のドキュメント ピッカーで選択したストレージの場所からファイルを読み取る実装に成功しました。

ここで、アプリが常に同じファイルを選択できるようにするために、SAF が許可する を使用したいと思いPersist permissionsます (ただし、ドキュメント ピッカー ウィンドウ [およびサブウィンドウ] が常に表示されることはありません)。

私はどうにかして Persist-permissions の実装に成功しました ( SAF-docに示されているように) (...そのためには、以下の私のコード例を参照してください...) - しかし、疑問が生じました:

  1. persistence-permission が機能しているにもかかわらず、ドキュメント ピッカー ウィンドウがポップアップし続けるのはなぜですか? ファイルがユーザーによって選択されると、この瞬間から、ピッカーウィンドウが前面に表示されることなく、ファイルの内容を単純に取得したいと思います。これは可能ですか?はいの場合、どのように?(ユーザーがもう一度選択しなくてもファイルがすぐに読み取られるため、永続化の許可が何らかの形で機能していることがわかります。しかし、それでもこの厄介なピッカー ウィンドウが表示される必要はありません。または表示されますか?)
  2. アプリが閉じられたり停止されたりしても、SAF 永続許可を維持することはできますか? はいの場合、どのように?

これは、永続化権限のある私の試用版を含む、ファイル コンテンツを取得するコード サンプルです。

StorageClientFragment クラス内:

Fragment の作成は MainActivity で行われます。

Test-Button がクリックされると、FileSearch の呼び出しが行われます。

上記のコードはうまく機能します。しかし、繰り返しになりますが、SAF ドキュメント ピッカー ウィンドウが常に表示されないようにするにはどうすればよいでしょうか (永続的なアクセス許可が設定されている場合でも)。

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

android - Android SAF (ストレージ アクセス フレームワーク): TreeUri から特定のファイル Uri を取得する

外部 Sd カードの PersistableUriPermission を取得し、さらに使用するために保存しています。ここで、ユーザーがアプリケーションのファイルのリストからファイル パスを提供したときに、ドキュメントを編集して名前を変更したいと考えています。

だから私は編集するファイルのファイルパスを持っています。

私の質問は、そのファイルの Uri を TreeUri から編集ファイルとして取得する方法です。

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

android - Storage Access Framework 使用時の致命的なシグナル 11

Storage Access Framework を使用して、外部 SD カードからファイルを削除しようとしています。SD カードのルート URI を取得し、DocumentFile のさまざまなメソッドを使用してファイル階層内の特定のドキュメントにアクセスすることで、アクセス許可を取得しています。これが私がやっている方法です

次のコードを使用して、外部 SD カードのルートにアクセスしています -

次に、treeUri を保存し、永続的な許可を求めています

次に、削除するファイルの絶対パスを取得し、その DocumentFile オブジェクトを取得しようとしています。

この絶対パスは、外部 SD カードの階層の奥深くにあります。ただし、これによりセグメンテーション違反が発生し、例外はまったく発生しません。File から DocumentFile を取得するために、次のコードも使用しようとしました -

これは私に同じ問題を与えています。(MainActivity.hubMainActivity へのシングルトンです。私を責めないでください。ここでバグを修正しているだけです)。

こんなはずじゃないの?SDカード内にあるファイルにルートUri権限のみでアクセスする際の問題は何ですか。ACTION_OPEN_DOCUMENT_TREEの代わりに作成された理由ではありませんACTION_OPEN_DOCUMENT。とにかくマシュマロで使用しているので、うまくいくはずです。

これは、私が取得しているセグメンテーション違反のクラッシュ ログです。