2017-07-17 24 views
1

FileProvider documentationリスト次の場所:FileProviderがドロワーブルを提供する方法を教えてください。それからファイルを提供することができる場所として

  • アプリの内部ストレージ領域のファイル/サブディレクトリ

  • アプリの内部記憶領域のキャッシュサブディレクトリ

  • 外部記憶領域のルート

  • アプリの外部記憶領域のルート

  • アプリの外部キャッシュ領域のルート

から提供されるようにもファイルを許可Commonsware's CWAC Provider、などFileProvider子孫、あります

  • アプリの生のリソースフォルダが

  • アプリのアセットフォルダ

  • GETDIRによって返されたフォルダ()(それはいくつかの致命的な欠点を持っていない場合)

  • Environment.getExternalStoragePublicDirectoryによって返されたフォルダを()

しかし、どのように1はFileProvider助成金のことを書きますアプリの既存のドロウアブルへのアクセス(最初に別のフォルダにドロワブルをコピーする必要はありません)?

答えて

1

欠点はありませんが、これは無意味かもしれません(下記の説明を参照)。


CWACプロバイダのようなアクセスフォークのソースコードを実装し、それがdrawablesフォルダとrawリソースフォルダの使用だ置き換えるには。一般的に使用される描画可能形式(pngとjpg)は、aaptによって非圧縮形式で格納されるため、その点では未処理のリソースとドロワブルの間に違いはありません。 drawableは通常複数の構成バケットのために用意されているので、(Uriの追加のカスタムクエリパラメータなどを介して)必要な次元/解像度を指定するには、呼び出し側が必要です。

あなたの目標に応じて、ContentProviderを使用してアプリケーションリソースにアクセスする必要はないかもしれません。あなたのアプリがDRMで保護されていない場合、それはapkであり、リソースは暗号化されずにデバイスに保存されます。 インストールされているアプリケーションは、ContentProvider経由でこれらのリソースに簡単にアクセスできます。createPackageContextを呼び出し、返されたContextのResourcesオブジェクトを自分の普通のローカルリソースと同じように使用してください。

関連する問題