android.os.Environment#isExternalStorageEmulated ( )源码实例Demo

下面列出了android.os.Environment#isExternalStorageEmulated ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: edslite   文件: StorageOptionsBase.java
@SuppressLint("ObsoleteSdkInt")
private StorageInfo getDefaultStorage()
{
    String defPathState = Environment.getExternalStorageState();
    if(Environment.MEDIA_MOUNTED.equals(defPathState) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(defPathState))
    {
        StorageInfo info = new StorageInfo();
        if (
                Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD ||
                        (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB && !Environment.isExternalStorageRemovable()) ||
                        (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB && (!Environment.isExternalStorageRemovable() || Environment.isExternalStorageEmulated()))
                )
            info.label = _context.getString(R.string.built_in_memory_card);
        else
        {
            info.isExternal = true;
            info.label = _context.getString(R.string.external_storage) + " 1";
        }
        info.path = Environment.getExternalStorageDirectory().getPath();
        return info;
    }
    return null;
}
 
源代码2 项目: YalpStore   文件: Paths.java
static public File getStorageRoot(Context context) {
    File storageRoot = Environment.getExternalStorageDirectory();
    File[] externalFilesDirs = getExternalFilesDirs(context);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP
        || externalFilesDirs.length < 2
        || (Environment.isExternalStorageEmulated(storageRoot) && !Environment.isExternalStorageRemovable(storageRoot))
    ) {
        return storageRoot;
    }
    for (File file: externalFilesDirs) {
        try {
            if (null != file && Environment.isExternalStorageEmulated(file) && !Environment.isExternalStorageRemovable(file)) {
                return new File(file.getAbsolutePath().replace(FALLBACK_DIRECTORY, ""));
            }
        } catch (IllegalArgumentException e) {
            // The checks throw exceptions if Environment.getStorageVolume(File path) returns null
            // It would be great to know why
        }
    }
    return storageRoot;
}
 
源代码3 项目: android_9.0.0_r45   文件: DiskStatsFileLogger.java
private void addAppsToJson(JSONObject json) throws JSONException {
    JSONArray names = new JSONArray();
    JSONArray appSizeList = new JSONArray();
    JSONArray appDataSizeList = new JSONArray();
    JSONArray cacheSizeList = new JSONArray();

    long appSizeSum = 0L;
    long appDataSizeSum = 0L;
    long cacheSizeSum = 0L;
    boolean isExternal = Environment.isExternalStorageEmulated();
    for (Map.Entry<String, PackageStats> entry : filterOnlyPrimaryUser().entrySet()) {
        PackageStats stat = entry.getValue();
        long appSize = stat.codeSize;
        long appDataSize = stat.dataSize;
        long cacheSize = stat.cacheSize;
        if (isExternal) {
            appSize += stat.externalCodeSize;
            appDataSize += stat.externalDataSize;
            cacheSize += stat.externalCacheSize;
        }
        appSizeSum += appSize;
        appDataSizeSum += appDataSize;
        cacheSizeSum += cacheSize;

        names.put(stat.packageName);
        appSizeList.put(appSize);
        appDataSizeList.put(appDataSize);
        cacheSizeList.put(cacheSize);
    }
    json.put(PACKAGE_NAMES_KEY, names);
    json.put(APP_SIZES_KEY, appSizeList);
    json.put(APP_CACHES_KEY, cacheSizeList);
    json.put(APP_DATA_KEY, appDataSizeList);
    json.put(APP_SIZE_AGG_KEY, appSizeSum);
    json.put(APP_CACHE_AGG_KEY, cacheSizeSum);
    json.put(APP_DATA_SIZE_AGG_KEY, appDataSizeSum);
}
 
源代码4 项目: android_9.0.0_r45   文件: Uri.java
/**
 * If this {@link Uri} is {@code file://}, then resolve and return its
 * canonical path. Also fixes legacy emulated storage paths so they are
 * usable across user boundaries. Should always be called from the app
 * process before sending elsewhere.
 *
 * @hide
 */
public Uri getCanonicalUri() {
    if ("file".equals(getScheme())) {
        final String canonicalPath;
        try {
            canonicalPath = new File(getPath()).getCanonicalPath();
        } catch (IOException e) {
            return this;
        }

        if (Environment.isExternalStorageEmulated()) {
            final String legacyPath = Environment.getLegacyExternalStorageDirectory()
                    .toString();

            // Splice in user-specific path when legacy path is found
            if (canonicalPath.startsWith(legacyPath)) {
                return Uri.fromFile(new File(
                        Environment.getExternalStorageDirectory().toString(),
                        canonicalPath.substring(legacyPath.length() + 1)));
            }
        }

        return Uri.fromFile(new File(canonicalPath));
    } else {
        return this;
    }
}
 
源代码5 项目: IslamicLibraryAndroid   文件: StorageUtils.java
/**
 * Converts a list of mount strings to a list of Storage items
 *
 * @param context the context
 * @param mounts  a list of mount points as strings
 * @return a list of Storage items that can be rendered by the ui
 */
@NonNull
private static List<Storage> buildMountsList(@NonNull Context context, @NonNull List<String> mounts) {
    List<Storage> list = new ArrayList<>(mounts.size());

    int externalSdcardsCount = 0;
    if (mounts.size() > 0) {
        // Follow Android SD Cards naming conventions
        if (!Environment.isExternalStorageRemovable() || Environment.isExternalStorageEmulated()) {
            list.add(new Storage(context.getString(R.string.prefs_sdcard_internal),
                    Environment.getExternalStorageDirectory().getAbsolutePath()));
        } else {
            externalSdcardsCount = 1;
            list.add(new Storage(context.getString(R.string.prefs_sdcard_external,
                    externalSdcardsCount), mounts.get(0)));
        }

        // All other mounts rather than the first mount point are considered as External SD Card
        if (mounts.size() > 1) {
            externalSdcardsCount++;
            for (int i = 1/*skip the first item*/; i < mounts.size(); i++) {
                list.add(new Storage(context.getString(R.string.prefs_sdcard_external,
                        externalSdcardsCount++), mounts.get(i)));
            }
        }
    }

    Timber.d("final storage list is: %s", list);
    return list;
}
 
private boolean isExternalStorageMounted() {
  final String storageState = Environment.getExternalStorageState();
  return (Environment.MEDIA_MOUNTED.equals(storageState)
          || Environment.MEDIA_MOUNTED_READ_ONLY.equals(storageState))
      && !Environment.isExternalStorageEmulated();
}
 
源代码7 项目: IslamicLibraryAndroid   文件: StorageUtils.java
/**
 * @return A List of all storage locations available
 */
@NonNull
public static List<Storage> getAllStorageLocations(@NonNull Context context) {

/*
  This first condition is the code moving forward, since the else case is a bunch
  of unsupported hacks.

  For Kitkat and above, we rely on Environment.getExternalFilesDirs to give us a list
  of application writable directories (none of which require WRITE_EXTERNAL_STORAGE on
  Kitkat and above).

  Previously, we only would show anything if there were at least 2 entries. For M,
  some changes were made, such that on M, we even show this if there is only one
  entry.

  Irrespective of whether we require 1 entry (M) or 2 (Kitkat and L), we add an
  additional entry explicitly for the sdcard itself, (the one requiring
  WRITE_EXTERNAL_STORAGE to write).

  Thus, on Kitkat, the user may either:
  a. not see any item (if there's only one entry returned by getExternalFilesDirs, we won't
  show any options since it's the same sdcard and we have the permission and the user can't
  revoke it pre-Kitkat), or
  b. see 3+ items - /sdcard, and then at least 2 external fiels directories.

  on M, the user will always see at least 2 items (the external files dir and the actual
  external storage directory), and potentially more (depending on how many items are returned
  by getExternalFilesDirs).
 */
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        List<Storage> result = new ArrayList<>();
        int limit = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? 1 : 2;
        final File[] mountPoints = ContextCompat.getExternalFilesDirs(context, null);
        if (mountPoints != null && mountPoints.length >= limit) {
            int typeId;
            if (!Environment.isExternalStorageRemovable() || Environment.isExternalStorageEmulated()) {
                typeId = R.string.prefs_sdcard_internal;
            } else {
                typeId = R.string.prefs_sdcard_external;
            }

            int number = 1;
            result.add(new Storage(context.getString(typeId, number),
                    Environment.getExternalStorageDirectory().getAbsolutePath(),
                    Build.VERSION.SDK_INT >= Build.VERSION_CODES.M));
            for (File mountPoint : mountPoints) {
                if (mountPoint != null) {
                    result.add(new Storage(context.getString(typeId, number++),
                            mountPoint.getAbsolutePath()));
                    typeId = R.string.prefs_sdcard_external;
                }
            }
        }
        return result;
    } else {
        return getLegacyStorageLocations(context);
    }
}
 
源代码8 项目: pre-dem-android   文件: LogUtils.java
/**
 * 判断SD卡是否mounted
 */
@SuppressLint("NewApi")
public static boolean isMounted() {
    return Environment.isExternalStorageEmulated();
}
 
源代码9 项目: microMathematics   文件: CompatUtils.java
public static boolean isExternalStorageEmulated()
{
    return Environment.isExternalStorageEmulated();
}
 
源代码10 项目: android-tv-launcher   文件: LogUtil.java
/** 判断SD卡是否mounted*/
public static boolean isMounted() {
    return Environment.isExternalStorageEmulated();
}
 
源代码11 项目: batteryhub   文件: Storage.java
/**
 * Checks if external storage is emulated, works on API level 11+.
 *
 * @return True if method is supported and storage is emulated
 */
private static boolean isExternalStorageEmulated() {
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
            Environment.isExternalStorageEmulated();
}