android 实用工具类-手机存储
来源:互联网 发布:linux 查看进程命令行 编辑:程序博客网 时间:2024/05/16 08:57
import android.content.Context;import android.content.pm.PackageManager;import android.os.Environment;import java.io.File;import java.io.IOException;import static android.os.Environment.MEDIA_MOUNTED;/** * Provides application storage paths * * @author Sergey Tarasevich (nostra13[at]gmail[dot]com) * @since 1.0.0 */public final class StorageUtils {private static final String EXTERNAL_STORAGE_PERMISSION = "android.permission.WRITE_EXTERNAL_STORAGE";private static final String INDIVIDUAL_DIR_NAME = "uil-images";private StorageUtils() {}/** * Returns application cache directory. Cache directory will be created on SD card * <i>("/Android/data/[app_package_name]/cache")</i> if card is mounted and app has appropriate permission. Else - * Android defines cache directory on device's file system. * * @param context Application context * @return Cache {@link File directory}.<br /> * <b>NOTE:</b> Can be null in some unpredictable cases (if SD card is unmounted and * {@link android.content.Context#getCacheDir() Context.getCacheDir()} returns null). */public static File getCacheDirectory(Context context) {return getCacheDirectory(context, true);}/** * Returns application cache directory. Cache directory will be created on SD card * <i>("/Android/data/[app_package_name]/cache")</i> (if card is mounted and app has appropriate permission) or * on device's file system depending incoming parameters. * * @param context Application context * @param preferExternal Whether prefer external location for cache * @return Cache {@link File directory}.<br /> * <b>NOTE:</b> Can be null in some unpredictable cases (if SD card is unmounted and * {@link android.content.Context#getCacheDir() Context.getCacheDir()} returns null). */public static File getCacheDirectory(Context context, boolean preferExternal) {File appCacheDir = null;String externalStorageState;try {externalStorageState = Environment.getExternalStorageState();} catch (NullPointerException e) { // (sh)it happens (Issue #660)externalStorageState = "";}if (preferExternal && MEDIA_MOUNTED.equals(externalStorageState) && hasExternalStoragePermission(context)) {appCacheDir = getExternalCacheDir(context);}if (appCacheDir == null) {appCacheDir = context.getCacheDir();}if (appCacheDir == null) {String cacheDirPath = "/data/data/" + context.getPackageName() + "/cache/";L.w("Can't define system cache directory! '%s' will be used.", cacheDirPath);appCacheDir = new File(cacheDirPath);}return appCacheDir;}/** * Returns individual application cache directory (for only image caching from ImageLoader). Cache directory will be * created on SD card <i>("/Android/data/[app_package_name]/cache/uil-images")</i> if card is mounted and app has * appropriate permission. Else - Android defines cache directory on device's file system. * * @param context Application context * @return Cache {@link File directory} */public static File getIndividualCacheDirectory(Context context) {File cacheDir = getCacheDirectory(context);File individualCacheDir = new File(cacheDir, INDIVIDUAL_DIR_NAME);if (!individualCacheDir.exists()) {if (!individualCacheDir.mkdir()) {individualCacheDir = cacheDir;}}return individualCacheDir;}/** * Returns specified application cache directory. Cache directory will be created on SD card by defined path if card * is mounted and app has appropriate permission. Else - Android defines cache directory on device's file system. * * @param context Application context * @param cacheDir Cache directory path (e.g.: "AppCacheDir", "AppDir/cache/images") * @return Cache {@link File directory} */public static File getOwnCacheDirectory(Context context, String cacheDir) {File appCacheDir = null;if (MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) && hasExternalStoragePermission(context)) {appCacheDir = new File(Environment.getExternalStorageDirectory(), cacheDir);}if (appCacheDir == null || (!appCacheDir.exists() && !appCacheDir.mkdirs())) {appCacheDir = context.getCacheDir();}return appCacheDir;}private static File getExternalCacheDir(Context context) {File dataDir = new File(new File(Environment.getExternalStorageDirectory(), "Android"), "data");File appCacheDir = new File(new File(dataDir, context.getPackageName()), "cache");if (!appCacheDir.exists()) {if (!appCacheDir.mkdirs()) {L.w("Unable to create external cache directory");return null;}try {new File(appCacheDir, ".nomedia").createNewFile();} catch (IOException e) {L.i("Can't create \".nomedia\" file in application external cache directory");}}return appCacheDir;}private static boolean hasExternalStoragePermission(Context context) {int perm = context.checkCallingOrSelfPermission(EXTERNAL_STORAGE_PERMISSION);return perm == PackageManager.PERMISSION_GRANTED;}}
0 0
- android 实用工具类-手机存储
- android 实用工具类-对话框
- android开发的实用工具类
- Android.util下实用工具类
- Android实用工具
- Android 实用工具
- Android实用工具
- Android开发实用工具类之Log类
- Android-网络状态相关实用工具类
- Android-网络状态相关实用工具类
- Android实用工具类方法总结(一)
- Android实用工具类-GrallyAndPhotoUtils图片处理工具
- Android开发中实用工具类总结
- 实用工具类
- 实用工具类
- 实用工具类
- Android--获得手机存储信息
- Android 手机存储目录详解
- 银行系统
- 第十三周项目三 成绩处理函数版
- class_create()和register_chrdev
- Servlet<2>
- C语言第十四回合:结构体大集合
- android 实用工具类-手机存储
- Android Framework中Intent中的传输处理
- POJ 2728 Desert King 最优比例生成树
- Android高效加载大图、多图解决方案,有效避免程序OOM
- linxu下CUDA静态库-下
- 一台nginx服务器多域名配置
- 网络流模板 POJ 1273 Drainage Ditches
- Jedis 连接池JedisPool 解决connection timeout问题
- 第13周项目3成绩函数版