/*
MEDIA_BAD_REMOVAL:表明SDCard 被卸载前己被移除
MEDIA_CHECKING:表明对象正在磁盘检查
MEDIA_MOUNTED:表明sd对象是存在并具有读/写权限
MEDIA_MOUNTED_READ_ONLY:表明对象权限为只读
MEDIA_NOFS:表明对象为空白或正在使用不受支持的文件系统
MEDIA_REMOVED:如果不存在 SDCard 返回
MEDIA_SHARED:如果 SDCard 未安装 ,并通过 USB 大容量存储共享 返回
MEDIA_UNMOUNTABLE:返回 SDCard 不可被安装 如果 SDCard 是存在但不可以被安装
MEDIA_UNMOUNTED:返回 SDCard 已卸掉如果 SDCard 是存在但是没有被安装
*/
/packages/apps/Settings/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
private void updatePreferencesFromState() {
// Only update for physical volumes
//只有更新物理卷
if (mVolume == null) return;
if (mVolume.getDescriptionId() == com.android.internal.R.string.storage_phone) return;
mMountTogglePreference.setEnabled(true);
final String state = mStorageManager.getVolumeState(mVolume.getPath());
//SD卡只读
if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
mItemAvailable.setTitle(R.string.memory_available_read_only);
if (mFormatPreference != null) {
removePreference(mFormatPreference);
}
} else {
mItemAvailable.setTitle(R.string.memory_available);
}
//只读||如果不存在SD卡将返回
if (Environment.MEDIA_MOUNTED.equals(state)
|| Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
mMountTogglePreference.setEnabled(true);
if (mVolume.getDescriptionId() == com.android.internal.R.string.storage_sd_card) {
mMountTogglePreference.setTitle(R.string.sd_eject);
mMountTogglePreference.setSummary(R.string.sd_eject_summary);
} else if (mVolume.getDescriptionId() == com.android.internal.R.string.storage_usb) {
mMountTogglePreference.setTitle(R.string.usb_storage_eject);
mMountTogglePreference.setSummary(R.string.usb_storage_eject_summary);
}
addPreference(mItemTotal);
addPreference(mItemAvailable);
} else {//已卸载SD卡||空白的,不支持 ||不可被安装
if (Environment.MEDIA_UNMOUNTED.equals(state) || Environment.MEDIA_NOFS.equals(state)
|| Environment.MEDIA_UNMOUNTABLE.equals(state)) {
mMountTogglePreference.setEnabled(true);
if (mVolume.getDescriptionId() == com.android.internal.R.string.storage_sd_card) {
mMountTogglePreference.setTitle(R.string.sd_mount);
mMountTogglePreference.setSummary(R.string.sd_mount_summary);
} else if (mVolume.getDescriptionId() == com.android.internal.R.string.storage_usb) {
mMountTogglePreference.setTitle(R.string.usb_storage_mount);
mMountTogglePreference.setSummary(R.string.usb_storage_mount_summary);
}
addPreference(mItemTotal);
addPreference(mItemAvailable);
} else {//
mMountTogglePreference.setEnabled(false);
if (mVolume.getDescriptionId() == com.android.internal.R.string.storage_sd_card) {
mMountTogglePreference.setTitle(R.string.sd_mount);
mMountTogglePreference.setSummary(R.string.sd_insert_summary);
} else if (mVolume.getDescriptionId() == com.android.internal.R.string.storage_usb) {
mMountTogglePreference.setTitle(R.string.usb_storage_mount);
mMountTogglePreference.setSummary(R.string.usb_storage_insert_summary);
}
}
removePreference(mUsageBarPreference);
removePreference(mItemTotal);
removePreference(mItemAvailable);
if (mFormatPreference != null) {
removePreference(mFormatPreference);
}
}