android6.0 用户关掉sd卡读取权限的情况下, 还能做到手机缓存么?
PHP中文网
PHP中文网 2017-04-17 17:58:29
0
2
461

6.0以前感觉只要在manifest中申明了权限就可以用数据库、硬盘缓存、sp这些来做数据缓存。但是6.0后需要动态申请权限, 并且用户可以随时关掉这些权限。 那么在用户关掉或者没有允许sd卡读取权限的情况下,还能做数据缓存么(没有开启权限的话,file总是会创建失败)? 如果能的话,那该怎么做呢?

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
小葫芦

兄さん、それは間違っていました。

公式ドキュメントをチェックしてください。

Android のストレージ容量は、Internal storageExternal storage

の 2 つの部分に分かれています。

内部ストレージ

いつでも利用でき、追加の権限は必要ありません。デフォルトでは、ここのファイルにはアプリからのみアクセスできます。
Context の getFilesDir() メソッドを通じてアプリの内部ディレクトリを取得でき、getCacheDir() を通じて内部キャッシュ ディレクトリを取得できます。

外部ストレージ

外部ストレージを取り付けているため、このスペースが常に利用できるとは限りません。ただし、ユーザーが SD カードを使用して容量を拡張することを許可しないメーカーが増えており、その代わりにデバイスのストレージ容量は依然として内部ストレージと外部ストレージに分かれていますが、この場合は基本的に外部ストレージです。はいつでも利用可能です。

も使用できます リーリー

外部ストレージがマウントされているかどうかを判断します。

Context の getExternalFilesDir() メソッドを通じてアプリの外部ディレクトリを取得でき、getExternalCacheDir() を通じて外部キャッシュ ディレクトリを取得できます。

これら 2 つのディレクトリは 外置储存空间目录/Android/data/你的App的包名/ の下にあります。アプリの minSdkVersion AndroidManifest.xml に次の権限を追加します:

リーリー

ただし、このディレクトリの外にあるファイルを読み書きする場合は、実行時権限が必要です (たとえば、外部ストレージのルート ディレクトリにログ ファイルなどを書き込む場合)

多くのアプリやサードパーティ SDK は、外部ストレージのルート ディレクトリにキャッシュを読み書きするため、携帯電話の外部ストレージのルート ディレクトリにあるあらゆる種類の奇妙なディレクトリを毎分見ることになります。 SDカード、本当にイライラしますよね?ただし、バージョン 6.0 以降の Android デバイスのシェアが増加し続けるにつれて、この問題は徐々に解決されると考えています。

Android アプリケーション開発の同僚全員が、可能な限り getExternalFilesDir() メソッドと getExternalCacheDir() メソッドを使用して、ユーザーにクリーンで整然とした外部ストレージを提供してほしいと願っています。

いいねを押す +0
巴扎黑

ブログ http://blog.csdn.net/github_3...

を参照してください。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート