android 判断手机中是否有SD卡,USB。静态判断

    public static String getSDPath(Context context) {
        String sd = null;
        StorageManager storageManager = (StorageManager) context
                .getSystemService(Context.STORAGE_SERVICE);
        StorageVolume[] volumes = storageManager.getVolumeList();
        for (int i = 0; i < volumes.length; i++) {
            if (volumes[i].isRemovable() && volumes[i].allowMassStorage()
                    && volumes[i].getDescription(context).contains("SD")) {
                sd = volumes[i].getPath();
            }
        }
        return sd;
    }
对SD卡的判断分静态和动态,动态通过注册广播,网上很多人都在写,这里就不做过多的阐述。对于这种静态的判断我在网上找的都是
<span style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; text-indent: 28px;"> Environment.getExternalStorageState().equals(</span><span style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; text-indent: 28px;">Environment.MEDIA_MOUNTED);写代码验证之后发现判断不成功。</span>
<span style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; text-indent: 28px;">
</span>
<span style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; text-indent: 28px;">下面是对USB的判断。</span>
<span style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; text-indent: 28px;"><span style="white-space:pre">	</span></span><pre name="code" class="java">	 public static boolean USBExist(Context context) {
	        boolean ret = false;
	        StorageManager storageManager = (StorageManager) context
	                .getSystemService(Context.STORAGE_SERVICE);

	        if (storageManager == null) {
	            Log.e(TAG, "Invalid reference to StorageManager received.");
	            return ret;
	        }

	        try {
	            if (storageManager.getVolumeState(getUSBPath(context)).equals(
	                    android.os.Environment.MEDIA_MOUNTED)) {
	                ret = true;
	            }
	        } catch (Exception e) {
	            Log.e(TAG, e.toString());
	        }

	        return ret;
	    }
	    public static String getUSBPath(Context context) {
	        String usb = null;
	        StorageManager storageManager = (StorageManager) context
	                .getSystemService(Context.STORAGE_SERVICE);
	        StorageVolume[] volumes = storageManager.getVolumeList();

	        for (int i = 0; i < volumes.length; i++) {

	            if (volumes[i].isRemovable() && volumes[i].allowMassStorage()
	                    && volumes[i].getDescription(context).contains("USB")) {
	                usb = volumes[i].getPath();
	            }
	        }
	        return usb;
	    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-22 00:57:51

android 判断手机中是否有SD卡,USB。静态判断的相关文章

iOS判断手机中是否 有 SIM卡---备用

[CTSIMSupportGetSIMStatus() isEqualToString:kCTSIMSupportSIMStatusNotInserted]可以判断是否插入了sim卡. 前提是把下面的代码随便复制到一个头文件里面,然后引入CoreTelephony.framework即可.extern NSString* c*****t kCTSMSMessageReceivedNotification;extern NSString* c*****t kCTSMSMessageReplaceR

Android开发 将数据保存到SD卡

前言: 使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的.对于像视频这样的大文件,我们可以把它存放在SDCard. SDCard是干什么的?你可以把它看作是移动硬盘或U盘. 在模拟器中使用SDCard,你需要先创建一张SDCard卡(当然不是真的SDCard,只是镜像文件).创建SDCard可以在Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创建,如下:

Android 使用Log4j把日志写入SD卡,动态修改输出文件名称

一.Log4j简单使用 1. 下载log4j.jar http://logging.apache.org/log4j/2.x/ 2. 创建Java代码 public class Loggers { public static Logger logger = Logger. getLogger(Loggers. class); public static void init() { try { PatternLayout patternLayout = new PatternLayout(); p

Android—将Bitmap图片保存到SD卡目录下或者指定目录

直接上代码就不废话啦 一:保存到SD卡下 [java] view plain copy File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg"); try { out = new FileOutputStream(file); btImage.compress(Bitmap.CompressFormat.JPEG, 90, out); System

Android 获取SD卡路径和判断SD卡是否存在

android获取sd卡路径方法: 不建议直接写死android sd卡的路径. public String getSDPath(){ File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在 if (sdCardExist) { sdDir = Environment.getEx

转-Android 之 使用File类在SD卡中读取数据文件

如果需要在程序中使用sdcard进行数据的存储,那么需要在AndroidMainfset.xml文件中 进行权限的配置: Java代码:   <!-- 在sd中创建和删除文件的权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 向SD卡中的写入权限 --> Java代码:   <uses-permission an

Android中播放本地SD卡中歌曲需要的添加的权限

使用MediaPlayer播放本地Mp3文件时,需要注意的访问路径的问题以及访问权限的问题. 1.访问路径:/storage/emulated/0 此路径即为手机的根路径,可以通过下载ES文件浏览器软件查看当前播放的Mp3具体的路径,通过Environment.getExternalStorageDirectory().getPath()获取/storage/emulated/0这个SdCard路径这在组织 void android.media.MediaPlayer.setDataSource

android 文件保存到应用和sd卡中

<span style="font-size:18px;">1.权限添加 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> public static S

Android4.4中不能发送SD卡就绪广播

当在Android上进行图片的扫描功能开发时一般会使用:sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse(“file://”+ Environment.getExternalStorageDirectory()+ picPath)));的广播. 但是在Android4.4及以上版本中,执行上面的代码出现异常:W/ActivityManager( 498): Permission Denial: not allowed