`
Leif_冬
  • 浏览: 47921 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Android mount/unmount SD卡

 
阅读更多

Android SD 卡的內容需要刷新才能讀取(從其它地方copy[PC或內部存儲])

使用mount/unmount的方法
代碼如下:

private void mountUnmountSD(boolean mMount) {
        StorageManager mStorageManager;
        mStorageManager = getApplicationContext().getSystemService(StorageManager.class);
        final List<VolumeInfo> volumes = mStorageManager.getVolumes();
        for (VolumeInfo vol : volumes) {
            if (vol.getType() == VolumeInfo.TYPE_PUBLIC) {
                if(!mMount && vol.getState() == VolumeInfo.STATE_MOUNTED)
                    new UnmountTask(getApplicationContext(), vol).execute();
                if(mMount && vol.getState() == VolumeInfo.STATE_UNMOUNTED) {
                    new MountTask(getApplicationContext(), vol).execute();
                }
            }
        }
    }

    public static class MountTask extends AsyncTask<Void, Void, Exception> {
        private final Context mContext;
        private final StorageManager mStorageManager;
        private final String mVolumeId;
        public MountTask(Context context, VolumeInfo volume) {
            mContext = context.getApplicationContext();
            mStorageManager = mContext.getSystemService(StorageManager.class);
            mVolumeId = volume.getId();
        }

        @Override
        protected Exception doInBackground(Void... params) {
            try {
                mStorageManager.mount(mVolumeId);
                return null;
            } catch (Exception e) {
                return e;
            }
        }

        @Override
        protected void onPostExecute(Exception e) {

        }

    }

    public static class UnmountTask extends AsyncTask<Void, Void, Exception> {
        private final Context mContext;
        private final StorageManager mStorageManager;
        private final String mVolumeId;
        private final String mDescription;

        public UnmountTask(Context context, VolumeInfo volume) {
            mContext = context.getApplicationContext();
            mStorageManager = mContext.getSystemService(StorageManager.class);
            mVolumeId = volume.getId();
            mDescription = mStorageManager.getBestVolumeDescription(volume);
        }

        @Override
        protected Exception doInBackground(Void... params) {
            try {
                mStorageManager.unmount(mVolumeId);
                return null;
            } catch (Exception e) {
                return e;
            }
        }

        @Override
        protected void onPostExecute(Exception e) {

        }
    }

 

分享到:
评论

相关推荐

    Android 下通过反射调用加载/卸载(mount/unmount) 外置SD卡

    `StorageVolume`类(存在于`frameworks/base/core/java/android/os/storage/StorageVolume.java`)代表一个存储卷,包括内部存储和外置SD卡。它提供了获取存储卷信息以及执行挂载和卸载操作的方法。然而,由于它...

    Android开发教程之调用摄像头功能的方法详解

    本文实例讲述了Android调用摄像头功能的方法。分享给大家供大家参考,具体如下: 我们要调用摄像头的拍照功能,显然 ...&lt;uses android:name=android.permission.MOUNT_UNMOUNT_FILESYSTEMS&gt; &lt;use

    android SD卡存储数据

    ### Android SD卡存储数据 #### 知识点一:Android应用权限管理 在Android系统中,应用程序如果想要访问外部存储(如SD卡)必须在`AndroidManifest.xml`文件中声明相应的权限。对于写入外部存储的操作,需要声明...

    Android编程读取sd卡中图片的方法

    在Android平台上,开发人员需要处理各种任务,包括从外部存储(如SD卡)读取数据,特别是图片。本文将详细讲解如何在Android应用中读取SD卡中的图片,包括必要的权限设置、查找SD卡目录以及根据路径加载图片的步骤。...

    android SD卡读写东西Txt文件

    在Android开发中,读写SD卡上的TXT文件是一项常见的需求,尤其是在需要存储或读取大量非结构化数据的应用场景下。根据给定的文件信息,我们可以深入探讨如何在Android应用中实现对SD卡上TXT文件的读写操作,以及相关...

    android sdcard

    在Android系统中,SD卡(Secure Digital Memory Card)是一种常用的外部存储介质,它主要用于扩展设备的存储空间,以便用户可以保存更多的数据和文件。为了使Android系统能够识别并正确地管理SD卡,系统采用了名为`...

    Android N获取外置SD卡或挂载U盘路径的方法

    "Android N获取外置SD卡或挂载U盘路径的方法" 在 Android N 中,获取外置 SD 卡或挂载 U 盘路径是件复杂的事情。因为 Android N 并不提供直接的方法来获取外置 SD 卡或挂载 U 盘路径,这使得开发者需要通过间接的...

    读取sd卡中的图片

    在Android应用开发中,有时我们需要从设备的存储卡(如SD卡)中读取图片,并将这些图片显示在一个图像库组件(Gallery)中。以下是对该需求的技术分解及实现过程的详细说明。 #### 一、检查SD卡状态 在进行任何...

    Android开发之SD卡文件操作分析

    在Android开发中,进行SD卡文件操作是常见的需求,特别是在需要保存用户数据或者应用资源时。本文将深入探讨如何在Android应用中实现对SD卡的读写操作。 首先,访问SD卡需要相应的权限。在AndroidManifest.xml文件...

    android之网络文件下载保存到SD_card上.pdf

    - **`MOUNT_UNMOUNT_FILESYSTEMS`**:允许应用挂载或卸载文件系统,如SD卡。 - **`WRITE_EXTERNAL_STORAGE`**:允许应用写入外部存储空间,即SD卡。 ##### 2. 创建SD卡镜像文件 如果是在模拟器中进行测试,我们...

    Android编程实现向SD卡写入数据的方法

    另外,如果你的应用需要挂载或卸载文件系统(例如,格式化SD卡),还需要 `android.permission.MOUNT_UNMOUNT_FILESYSTEMS` 权限。在XML文件中添加如下内容: ```xml &lt;!-- 在SDCard中创建于删除文件的权限 --&gt; ...

    Android编程之判断SD卡状态的方法

    1. `android.permission.MOUNT_UNMOUNT_FILESYSTEMS`:这个权限允许应用执行挂载和卸载文件系统操作,比如读取SD卡的状态。 2. `android.permission.WRITE_EXTERNAL_STORAGE`:这个权限允许应用写入外部存储(如SD卡...

    android编程实现sd卡读取数据库的方法

    在Android开发中,有时我们需要将数据库存储在外部存储器(如SD卡)上,以便于数据备份、恢复或与其他应用共享。本篇文章将详细介绍如何在Android应用中实现从SD卡读取数据库,以及涉及到的权限控制和相关操作技巧。...

    Android蓝牙通信之搜索蓝牙设备

    4. 存储卡权限:&lt;uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /&gt;&lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt; 三、动态权限代码 在Android ...

    opencv_android开发库

    &lt;uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/&gt; &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&gt; 解压压缩包opencv231_Android.rar 拷贝openvc...

    Android实现调用摄像头

    2. `MOUNT_UNMOUNT_FILESYSTEMS`和`WRITE_EXTERNAL_STORAGE`权限:用于在SD卡上保存拍摄的照片,确保应用有读写外部存储的权限。 ```xml &lt;uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILE...

    android文件管理类

    Android提供了多种方式来访问和操作文件,包括内部存储、外部存储(SD卡)以及ContentProvider等。本文将详细介绍一个常见的自定义`FileUtil`类,用于在Android中执行文件的增删改查操作。 首先,`FileUtil`类通常...

Global site tag (gtag.js) - Google Analytics