/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; import java.io.File; /** * Provides access to environment variables. */ public class Environment { private static final File ROOT_DIRECTORY = getDirectory("ANDROID_ROOT", "/system"); /** * Gets the Android root directory. */ public static File getRootDirectory() { return ROOT_DIRECTORY; } private static final File DATA_DIRECTORY = getDirectory("ANDROID_DATA", "/data"); private static final File EXTERNAL_STORAGE_DIRECTORY = getDirectory("EXTERNAL_STORAGE", "/sdcard"); private static final File DOWNLOAD_CACHE_DIRECTORY = getDirectory("DOWNLOAD_CACHE", "/cache"); /** * Gets the Android data directory. */ public static File getDataDirectory() { return DATA_DIRECTORY; } /** * Gets the Android external storage directory. */ public static File getExternalStorageDirectory() { return EXTERNAL_STORAGE_DIRECTORY; } /** * Gets the Android Download/Cache content directory. */ public static File getDownloadCacheDirectory() { return DOWNLOAD_CACHE_DIRECTORY; } /** * getExternalStorageState() returns MEDIA_REMOVED if the media is not present. */ public static final String MEDIA_REMOVED = "removed"; /** * getExternalStorageState() returns MEDIA_UNMOUNTED if the media is present * but not mounted. */ public static final String MEDIA_UNMOUNTED = "unmounted"; /** * getExternalStorageState() returns MEDIA_CHECKING if the media is present * and being disk-checked */ public static final String MEDIA_CHECKING = "checking"; /** * getExternalStorageState() returns MEDIA_NOFS if the media is present * but is blank or is using an unsupported filesystem */ public static final String MEDIA_NOFS = "nofs"; /** * getExternalStorageState() returns MEDIA_MOUNTED if the media is present * and mounted at its mount point with read/write access. */ public static final String MEDIA_MOUNTED = "mounted"; /** * getExternalStorageState() returns MEDIA_MOUNTED_READ_ONLY if the media is present * and mounted at its mount point with read only access. */ public static final String MEDIA_MOUNTED_READ_ONLY = "mounted_ro"; /** * getExternalStorageState() returns MEDIA_SHARED if the media is present * not mounted, and shared via USB mass storage. */ public static final String MEDIA_SHARED = "shared"; /** * getExternalStorageState() returns MEDIA_BAD_REMOVAL if the media was * removed before it was unmounted. */ public static final String MEDIA_BAD_REMOVAL = "bad_removal"; /** * getExternalStorageState() returns MEDIA_UNMOUNTABLE if the media is present * but cannot be mounted. Typically this happens if the file system on the * media is corrupted. */ public static final String MEDIA_UNMOUNTABLE = "unmountable"; /** * Gets the current state of the external storage device. */ public static String getExternalStorageState() { return SystemProperties.get("EXTERNAL_STORAGE_STATE", MEDIA_REMOVED); } static File getDirectory(String variableName, String defaultPath) { String path = System.getenv(variableName); return path == null ? new File(defaultPath) : new File(path); } }