精华内容
下载资源
问答
  • Android读写sd卡权限问题动态添加权限:”https://www.jianshu.com/p/d349047e6515 添加权限: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission ...

    Android6.0以上,权限问题

    Android读写sd卡权限问题动态添加权限:”https://www.jianshu.com/p/d349047e6515

    添加权限:

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    动态添加权限:

    if (Build.VERSION.SDK_INT >= 23) {  
        int REQUEST_CODE_PERMISSION_STORAGE = 100;  
        String[] permissions = {
               Manifest.permission.READ_EXTERNAL_STORAGE,
               Manifest.permission.WRITE_EXTERNAL_STORAGE
        };  
                
        for (String str : permissions) {  
            if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {  
                this.requestPermissions(permissions, REQUEST_CODE_PERMISSION_STORAGE);  
                return;  
            }  
        }  
    }

     

    展开全文
  • android 读取sd卡图片

    千次阅读 2015-09-21 20:57:39
    android 读取sd卡中的图片 一 读取sd卡中的图片  1 获取读取sd的权限  在AndroidMainfest.xml文件中添加            注意:在前添加  2 找到sd卡的目录(以真机的情况说明)    /**  *图片文件路径  ...

    android 读取sd卡中的图片  

    一 读取sd卡中的图片
         1 获取读取sd的权限
            在AndroidMainfest.xml文件中添加
                <!-- 在SDCard中创建与删除文件权限 -->
     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" ></uses-permission>
     <!-- 往SDCard写入数据权限 -->
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission>
     <uses-permission android:name="android.permission.RESTART_PACKAGES" ></uses-permission>
        注意:在<application...></application>前添加
         2 找到sd卡的目录(以真机的情况说明)
     
     /**
          *图片文件路径
     *打印Environment.getExternalStorageDirectory()得到:"/mnt/sdcard",即找到了sd卡的根目录
          */
     public String filePath=Environment.getExternalStorageDirectory()+"/client/tile/1_0_0.jpg";
       3 根据路径获取图片
              File mfile=new File(path);
         if (mfile.exists()) {//若该文件存在
         Bitmap bm = BitmapFactory.decodeFile(path);
         return bm;
         }
    二 注意事项
        在读取sd卡中图片的过程中的一些可用判断
         1 Environment.getExternalStorageState()获取路径是否成功
           /*如获取成功,返回值为MEDIA_MOUNTED*/
           if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
        {


             String filePath=Environment.getExternalStorageDirectory().getPath();
        }
       2 获取sd卡的权限成功
         /*fileName=Environment.getExternalStorageDirectory()+"/client" 是个文件夹目录*/
         File f = new File(fileName);
         //可读
         if(f.canRead())
         Log.v("EagleTag","very bad");
         //可写
         if(f.canWrite())
              Log.v("EagleTag","very good");



     android WebView 控件加载本地sdcard中html文件图片的问题


    烦恼了好几天的问题终于解决了
    如果用
    public void loadData(String data, String mimeType, String encoding)
    则会出现html代码中图片路径不对导致不能正常显示图片(通常是一个白色的固定大小的框,或者没有)
     
    当把路径改为绝对路径加上file://都还无法解决
     
    终于,在网上查资料的时候发现了这个函数,正好解决这个问题
     
    public void loadDataWithBaseURL(String baseUrl, String data, String mimeType,String encoding, String historyUrl)
    baseUrl是图片的目录,在html代码中就写关于此目录的相对路径就可以了,哇嘎嘎!~
     
    附带代码解释:
     
    String htmlPath = "file:///mnt/sdcard/test/11.html";


    String baseUrl = "file:///mnt/sdcard/test/";
     
    webView.loadDataWithBaseURL(baseUrl, data, "text/html", "utf-8", null);
     
    则两个调用都可以显示正常的html网页了,并且前一种可以对针对不同分辨率大小的屏幕做缩放了!!


    Android中的Environment.getExternalStorageState使用




    如果我们想要读取或者向SD卡写入,这时就必须先要判断一个SD卡的状态,否则有可能出错。
    那么SD卡状态为什么时才能读取呢,经过我的各种情况的实践,大致如下:

    SD状态
    现象描述
    /mnt/sdcard目录是否存在
    canRead返回
    canWrite返回
    在/mnt/sdcard创建文件
    在/mnt/sdcard创建文件夹
    MEDIA_MOUNTED
    SD卡正常挂载
    TRUE
    TRUE
    TRUE
    TRUE
    TRUE
    MEDIA_REMOVED
    无介质
    TRUE
    FALSE
    FALSE
    false:  原因Permission denied
    FALSE
    MEDIA_UNMOUNTED
    有介质,未挂载,在系统中删除
    TRUE
    FALSE
    FALSE
    false:  原因Permission denied
    FALSE
    MEDIA_BAD_REMOVAL
    介质在挂载前被移除,直接取出SD卡
    TRUE
    FALSE
    FALSE
    false:  原因Permission denied
    FALSE
    MEDIA_CHECKING
    正在磁盘检查,刚装上SD卡时
    TRUE
    FALSE
    FALSE
    false:  原因Permission denied
    FALSE
    MEDIA_SHARED
    SD卡存在但没有挂载,并且通过USB大容量存储共享,操作打开USB存储
    TRUE
    FALSE
    FALSE
    false:  原因Permission denied
    FALSE
    MEDIA_MOUNTED_READ_ONLY
    sd卡存在并且已挂载,但是挂载方式为只读
    -
    -
    无法模拟,SD卡不允许修改权限
    MEDIA_NOFS
    介质存在但是为空白或用在不支持的文件系统
    -
    -
    无法模拟,SD卡格式化后再加载会自动生成系统文件
    MEDIA_UNMOUNTABLE
    存在SD卡但是不能挂载,例如发生在介质损坏
    -
    -
    无法模拟


    通过上表可以看出,只有在SD卡状态为MEDIA_MOUNTED时/mnt/sdcard目录才是可读可写,并且可以创建目录及文件。
    所以我们读取SD卡时一般会这么写:
     
    01
    02
    03
    04
    05
    06
    String state;
    String path;
    state = Environment.getExternalStorageState();
    if(state.equals(Environment.MEDIA_MOUNTED)){
    path = Environment.getExternalStorageDirectory().getAbsolutePath();


    读写SD卡记得加这两个权限:

    ?

     

    01

    02

    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

     

    1 在AndroidManifest文件中加入sdcard操作权限
      * <!--在SDCard中创建与删除文件权限 -->
      * <uses-permissioandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 
      * <!--往SDCard写入数据权限 --> 
      * <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    * 2 确认sdcard的存在
      * android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)
    * 3 获取扩展存储设备的文件目录
      * android.os.Environment.getExternalStorageDirectory();



    展开全文
  • Android 读取sd卡图片

    千次阅读 2015-01-21 14:59:01
    一、获取读取SD卡的权限 在SDCard中创建与删除文件权限 --> uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 往SDCard写入数据权限 --> uses-permission android:name=...

    一、获取读取SD卡的权限

    复制代码
    <!--在SDCard中创建与删除文件权限  -->
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
        <!-- 往SDCard写入数据权限 -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <!--  从SDCard读取数据权限 -->
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    复制代码

    二、找到SD卡的目录

    /**
         * Environment.getExternalStorageDirectory()得到:“、mnt/sdcard” 即找到了sd卡的根目录
         */
        private String path=Environment.getExternalStorageDirectory()+"client/tile/1.jpg";

    三、根据路径获取图片

    File mFile=new File(path);
            //若该文件存在
            if (mFile.exists()) {
                Bitmap bitmap=BitmapFactory.decodeFile(path);
                return bitmap;
            }

    注意:

    在读取sd卡中图片的过程中的一些可用判断

    1、获取路径是否成功

    复制代码
    /**
             * Environment.getExternalStorageState()获取路径是否成功
             */
            
             if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                String path=Environment.getExternalStorageDirectory().getPath();
            }
    复制代码

    2、获取SD卡权限成功

    复制代码
    private String path=Environment.getExternalStorageDirectory()+"client";
        File file=new File(path);
    if (file.canRead()) {
                Log.v("TAG", "可读");
            }
            if (file.canWrite()) {
                Log.v("TAG", "可写");
            }
    复制代码

     


    展开全文
  • Android读取SD卡内容

    2015-08-12 14:29:15
    在做开发的时候遇到一个问题就是需要为用户数据做缓存特别是图片文件缓存,下面就来看看SD卡的读写操作: Android读取手机SD卡内容: ①所需权限: ②判断是否挂载: if (Environment.getExternalStorageState...

    在做开发的时候遇到一个问题就是需要为用户数据做缓存特别是图片文件缓存,下面就来看看SD卡的读写操作:

    Android读取手机SD卡内容:

    ①所需权限:

    <!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <!-- 往SDCard写入数据权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    ②判断是否挂载:

    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
    			Log.i("test", "有SD卡::"+Environment.getExternalStorageDirectory());
    		}else {
    			Log.i("test", "没有SD卡");
    		}
    ③保存文件:

    String fileName = "xxxxx";
    String dir = "xxx";
    File dirFile = new File(dir);
    if (!dirFile.exists()) {
    	dirFile.mkdirs();
    }
    File file = new File(dir + "/" +fileName);
    try {
    	file.createNewFile();
    	OutputStream outputStream = new FileOutputStream(file);
    	//写文件
    	outputStream.flush();
    	outputStream.close();
    } catch (IOException e) {
    	e.printStackTrace();
    }
    ④读文件示例:

    File file = new File(path);
    if(file.exists()){
    	Bitmap bitmap = BitmapFactory.decodeFile(path);
    	if(bitmap == null){
    		file.delete();
    		return null;
    	}else {
    		return bitmap;
    	}
    }
    ⑤获取SD卡总容量:

    public long getSDAllSize(){  
     //取得SD卡文件路径  
     File path = Environment.getExternalStorageDirectory();   
     StatFs sf = new StatFs(path.getPath());   
     //获取单个数据块的大小(Byte)  
     long blockSize = sf.getBlockSize();   
     //获取所有数据块数  
     long allBlocks = sf.getBlockCount();  
     //返回SD卡大小  
     //return allBlocks * blockSize; //单位Byte  
     //return (allBlocks * blockSize)/1024; //单位KB  
     return (allBlocks * blockSize)/1024/1024; //单位MB  
    }   
    ⑥获取SD卡剩余容量:

    public long getSDFreeSize(){  
     //取得SD卡文件路径  
     File path = Environment.getExternalStorageDirectory();   
     StatFs sf = new StatFs(path.getPath());   
     //获取单个数据块的大小(Byte)  
     long blockSize = sf.getBlockSize();   
     //空闲的数据块的数量  
     long freeBlocks = sf.getAvailableBlocks();  
     //返回SD卡空闲大小  
     //return freeBlocks * blockSize;  //单位Byte  
     //return (freeBlocks * blockSize)/1024;   //单位KB  
     return (freeBlocks * blockSize)/1024 /1024; //单位MB  
    }







    展开全文
  • 分享给大家供大家参考,具体如下:一、获取读取SD卡的权限二、找到SD卡的目录/*** Environment.getExternalStorageDirectory()得到:“、mnt/sdcard” 即找到了sd卡的根目录*/private String path=Environment....
  • 一、获取读取SD卡的权限 <!--在SDCard中创建与删除文件权限 --> <uses android:name=android.permission.MOUNT_UNMOUNT_FILESYSTEMS/> <!-- 往SDCard写入数据权限 --> <uses android:name=android....
  • android 读取SD卡文件

    2016-07-14 15:40:00
    因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那么在Android开发中,我们如何能获取SD卡的内存容量呢? 首先,要获取SD卡上面的信息,必须先对SD卡有访问的权限,因此第一件事就是...
  • AndroidQ的SD卡读取权限问题解决方法 在学Android中,前面学习都没有什么问题,一遇到权限问题就蒙了,网上找了好久,说是Android6.0以上要动态获取权限,我尝试了但是对我项目没有用。 于是我又找又找,终于...
  • android 读取sd卡的txt并去除乱码

    千次阅读 2015-05-21 13:11:48
    需要从sd卡读取txt 首先得添加权限 在AndroidManifest.xml 创建一个读写类 FileHelperpackage cn.test.Manager; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io....
  • 现在android 9.0是如何读取外置SD卡权限的?我试过动态和静态申请都不行,在线等,急急急~ 听别人说用DocumentUI,这个怎样用,网上搜到方法很少~
  • 设置读取SD卡权限的问题

    千次阅读 2015-08-04 16:06:09
    在极客学院的Android项目实战中,有个记事本项目,由于视频中没有讲到在哪里加应用的读取SD卡权限问题,导致拍摄照片和视频都无法存到SD卡中,在网上到处查之后,终于解决了。 在Android的Manifest文件中: xml ...
  • Android SD卡读取

    2015-07-13 15:01:39
    博主的开发的第一个Android应用是Txt文本阅读器,其中对SD卡的读取总结如下: 1.SD卡读取权限  对SD卡存取需要在AndroidManifest.xml文件中添加权限:         2.向AVD的SD卡中导入文件提示错误...
  • 主要介绍了android编程实现sd卡读取数据库方法,涉及Android权限控制及针对sd卡与数据库相关操作技巧,具有一定参考借鉴价值,需要朋友可以参考下
  • 本文实例讲述了android编程实现sd卡读取数据库方法。分享给大家供大家参考,具体如下:先在 Manifest 里添加权限:然后在 mainActivity 添加方法:SQLiteDatabase db;private final String DATABASE_PATH = ...
  • 近日,在在巴塞罗那举办MWC 2109展会上,著名存储产品制造商闪迪和镁光分别公布了1TB容量MicroSD卡,这也是目前世界上容量最大MicroSD卡。据悉,闪迪卡读取速度最高可达160MB/S以及90/MB写入速度,镁光卡...
  • Android sd卡读取

    2012-07-26 11:22:37
    SD卡使用的是FAT(File Allocation Table)的文件系统,不支持访问模式和权限控制,SD卡适用于保存大尺寸的文件...为了读\写SD卡上的文件,必须在AndroidManifest.xml中添加读\写SD卡的权限 在SD卡上创建与删除文件的

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 214
精华内容 85
关键字:

android读取sd卡的权限