4

バックグラウンド

Kitkat (API 19) 以降、Google は SD カード (より正確には、2 番目の外部ストレージ) にアクセスするためのいくつかの制限と API を追加しました。

サードパーティのアプリは、root 権限を持っているか、システム アプリでない限り、自分のフォルダー以外の SD カードに書き込むことができなくなりました。

Google は、「ファイル ピッカー」と呼ばれる SD カード上のファイルを管理できる組み込みのシステム アプリを追加しました。これには、ユーザーが実行できるいくつかの操作があります。

新しい API は「Storage Access Framework」と呼ばれます。詳細については、こちらを参照してください。

問題

以前は常に可能だった特定の操作を処理する方法に関する情報はあまりありません。確かに、それらはすべての外部ストレージ操作に使用されていましたが、Google がこのタイプのストレージを扱ったのはごく最近のことです。

また、新しい「ファイル ピッカー」で実行できることと実行できないことについて、十分な情報が見つかりませんでした。

フレームワークは他のアプリに属する​​ファイルの操作をサポートしているようですが、一部のファイルはユーザーによって (たとえば PC から) コピーされたものであり、それらがどのように処理されるかはわかりません。

質問

  1. 新しい API で次の操作を処理するにはどうすればよいですか?

  2. 新しいツールを開いて、ユーザーがファイルを手動で操作できる特定のパスを表示する意図はありますか?

  3. Kitkat から始めて、ツールは常に存在すると仮定できますか? そうでない場合はどうすればよいですか?代替手段はありますか?

  4. SDカードへの書き込みのこの制限を「修正」したユーザーのために(たとえば、このツールを使用して)、フルアクセスが許可されているかどうかを識別する公式の方法はありますか? もちろん、どこかにランダムなファイルを作成して削除しようとするだけではありません...

  5. 新しい API で使用できるインテントは何ですか? 私が見つけたすべてのインテントは、他のアプリがサポートしている場合に備えて、他のアプリのファイルの処理に関連していますが、ファイルへのパスを処理するものは見つかりません。

4

2 に答える 2

1

あなたの質問と同様の質問と、Google エンジニアから提供された素晴らしい回答があると思います。こちらを参照してください: Lollipop 用に提示された新しい SD カード アクセス API の使用方法?

于 2015-02-24T19:31:52.300 に答える
1

CommonsWare には、質問のパート 1 に (ほとんど) 対処する一連のブログ投稿があります。

ブログ投稿シリーズ全体で以下をカバーしています。

残りの質問に関するドキュメントはないようです (これは驚くべきことではありません。もしあれば、質問をする必要がなかったからです!)

于 2014-09-07T08:07:55.200 に答える