精华内容
下载资源
问答
  • android 访问data目录 6 0模拟器读写sdcard 相关sdcard路径
                           

    转载请标明出处: http://blog.csdn.net/xx326664162/article/details/52259980   文章出自:薛瑄的博客

    你也可以查看我的其他同类文章,也会让你有一定的收货

    访问data目录

    在不root手机的情况下读取Data目录下的文件,直接访问data目录,会产生以下错误:

    127|shell@android:/ $ cd /data  cd /data  shell@android:/data $ ls  ls  opendir failed, Permission denied  
      
    • 1
    • 2
    • 3
    • 4
    • 5

    提示没有权限。

    正确使用adb读取data目录下的文件

    shell@android:/data $ run-as com.your.package  run-as com.your.package  shell@android:/data/data/com.your.package $ cd /data/data/com.your.package  cd /data/data/com.your.package  shell@android:/data/data/com.your.package $ ls  ls  cache  databases  lib  shared_prefs  shell@android:/data/data/com.your.package $ cd databases  cd databases  shell@android:/data/data/com.your.package/databases $ ls  yourpackagename.db  $ cat preferences.db > /mnt/sdcard/yourpackagename.db     
      
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    将你要访问的package目录下的db文件拷贝到sdcard中,这样就可以正常访问了!

    访问sdcard卡

    有的Android版本,为了兼容以前,sdcard挂载到 /storage/emulated/legacy (故名思议,传统的),还建立三个软连接 /storage/sdcard0 ,/sdcard,/mnt/sdcard ,都指向 /storage/emulated/legacy

    但是MIUI 系统,/sdcard路径是指向/storage/self/primary的路径的,而且上面提到的/storage/emulated/目录是没有权限查看的

    所以访问sdcard,建议都去访问根目录下的/sdcard/目录

    shell@cancro:/ $ cd sdcard/shell@cancro:/sdcard $
      
    • 1
    • 2

    关于sdcard文件目录的更深入分析

    Android 6.0模拟器读写SD 卡

    http://bbs.csdn.net/topics/391918620

    在6.0模拟器上死活写文件不成功,试了4.0的模拟器没问题,真机没问题,6.0和 Android N 不成功,查了半天真相原来是要手动授权才可以。

    这里写图片描述

    参考:http://blog.csdn.net/yangzl2008/article/details/8498196

     

    关注我的公众号,轻松了解和学习更多技术
      这里写图片描述

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 主要介绍了Android获取内置sdcard跟外置sdcard路径的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
  • 今天小编就为大家分享一篇Android 6.0上sdcard和U盘路径获取和区分方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • android sdcard各种存储路径解惑

    千次阅读 2016-02-18 15:00:19
    在开发app的过程中,需要保存一些数据,这时就会遇到各种存储路径sdcard/、storage/sdcard0、mnt/sdcard等等,会让人很难以理解。这其中的很多路径都是指向同一个路径,有点指针的味道。 其中的sdcard/、mnt/...

    在开发app的过程中,需要保存一些数据,这时就会遇到各种存储路径,sdcard/、storage/sdcard0、mnt/sdcard等等,会让人很难以理解。这其中的很多路径都是指向同一个路径,有点指针的味道。


    其中的sdcard/、mnt/sdcard、storage/sdcard0、storage/emulated/0、storage/emulated/legacy都是同一个路径的不同”指针“,说到底都是内部存储,真正的外部存储卡是mnt/sdcard2和storage/sdcard1,通过Environment.getExternalStorageDirectory函数获取的还是内部存储卡。

    查看官方文档和测试发现,在api 19和以上版本调用getExternalFilesDirs时会同时能够获取到内部和外部sdcard,内部是获取到的storage/emulated/0的存储路径,外部获取的是storage/sdcard1的存储路径,通过用兼容包中的ContextCompat.getExternalFilesDirs函数也能达到相同的效果。相比之下,getExternalFilesDir 这个只是得到主外部存储目录,默认是内部存储中的storage/emulate/0。官方文档中说6.0以后采取了adoptable storage,可以将应用安装在外部存储空间了,只需要将外部存储空间设置成主外部存储目录。Android官方文档说明(需翻墙)

    其中的mnt目录是Linux本身就带有的,Android还应用了fuse技术。再往下挖掘就到了Linux内部的filesystem了。

    展开全文
  • Android6.0上会根据卡的种类和卡的挂载状态来动态生成挂载路径,所以之前写固定路径的办法不可用,最后... * 6.0获取外置sdcard和U盘路径,并区分  * @param mContext  * @param keyword SD = "内部存储"; EXT =

    Android6.0上会根据卡的种类和卡的挂载状态来动态生成挂载路径,所以之前写固定路径的办法不可用,最后通过网上查找和分析android源码,通过反射获取到路径,并且进行了正确区分,代码如下:

    /**
         * 6.0获取外置sdcard和U盘路径,并区分
         * @param mContext
         * @param keyword  SD = "内部存储"; EXT = "SD卡"; USB = "U盘"
         * @return
         */
        public static String getStoragePath(Context mContext,String keyword) {
            String targetpath = "";
            StorageManager mStorageManager = (StorageManager) mContext
                    .getSystemService(Context.STORAGE_SERVICE);
            Class<?> storageVolumeClazz = null;
            try {
                storageVolumeClazz = Class.forName("android.os.storage.StorageVolume");
                
                Method getVolumeList = mStorageManager.getClass().getMethod("getVolumeList");
                
                Method getPath = storageVolumeClazz.getMethod("getPath");
                      
                Object result = getVolumeList.invoke(mStorageManager);
                
                final int length = Array.getLength(result);
                
                Method getUserLabel = storageVolumeClazz.getMethod("getUserLabel");
                
                
                for (int i = 0; i < length; i++) {
                    
                    Object storageVolumeElement = Array.get(result, i);
                   
                    String userLabel = (String) getUserLabel.invoke(storageVolumeElement);
                    
                    String path = (String) getPath.invoke(storageVolumeElement);
                    
                    if(userLabel.contains(keyword)){
                        targetpath = path;
                    }

                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            return targetpath ;
        }

    这里拿到的userLabel就是系统给每个盘的一个label,用来区分是内部存储、sdcard还是U盘,内卡的label固定,但是sdcard和U盘的label是根据种类,状态等信息等动态生成,所以这里“if(userLabel.contains(keyword)){”没有用equals。

    总结:不懂看源码

    展开全文
  • Android M 读取OTG U盘路径和sdcard路径demo , 第三方apk可以参考使用。摘要为什么要50个字,为什么呢?
  • 有时候外部sdcard 的apk包名路径没有创建,就是“storage/sdcard?/Android/data/包名/ ” 这个路径没有创建,导致程序在往这个路径下读写内容时出错。 而且因为权限问题,我们不能手动创建包名目录。后来找到了这个...

    在写项目的时候遇到一个问题:

    有时候外部sdcard 的apk包名路径没有创建,就是“storage/sdcard?/Android/data/包名/ ”  这个路径没有创建,导致程序在往这个路径下读写内容时出错。

    而且因为权限问题,我们不能手动创建包名目录。后来找到了这个方法,

    File[] externalFilesDirs = ContextCompat.getExternalFilesDirs(context, null);//获取所有sdcard下的包名路径,所以是一个数组。

    在调用这个后,所有sdcard 的 “storage/sdcard?/Android/data/下都会创建出一个 包名 文件夹。



    展开全文
  •  /**  *  */  private String getSDCardPath() { ... // 判断SDCard是否存在  boolean sdcardExist = Environment.getExternalStorageState().equals(  android.os.Environment.M
  • Android中获取SDCard的目录路径

    千次阅读 2013-03-26 23:11:24
    uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ... * 获取SDCard的目录路径功能  * @return  */  private String getSDCardPath(){  File sdcardDir = null
  • 在工作中遇到通过Environment.getExternalStorageDirectory().getAbsolutePath()获取不到外插sdcard路径。看了intel写的一个文件管理器发现他是这样获取的。StorageManager mStorageManager = storageManager; if...
  • 以前写过一个图片浏览器,查找图片路径的时候是通过递归遍历了sdcard 上的所有文件,通过后缀名识别的,现在想想汗啊。 现在通过ContentResolver 可以直通过数据库查看图片的地址。 具体方法是ContentResolver ...
  • 首先Android内部存储路径为/data/data/youPackageName/,下面讲解的各路径都是基于你自己的应用的内部存储路径下。所有内部存储中保存的文件在用户卸载应用的时候会被删除。 一、 files 1. Context.getFilesDir(),...
  • 项目需求:设备同时插入sd卡,U盘,... * 6.0获取外置sdcard和U盘路径,并区分 * @param mContext * @param keyword SD = "SD 卡"; EXT = "共享存储"; U盘 = "U 盘" * @return */ String neicun = getStorag...
  • 我想删除sdcard中特定路径的所有的文件。使用的下面的代码: private void readFile(File[] file) { for (int i = 0; file != null && i ; i++) { // now i check if it is a file or filename extension ...
  • 关于sdCard 路径

    2017-06-27 10:12:38
    大部分应用是直接在SDcard 的根目录下创建一个文件夹,然后把数据保存在该文件夹中。 这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。 如果你想让你的应用被卸载后,与该应用相关的数据也清除...
  • 在Android平台中提供了一种获取sdcard的方法即Environment.getExternalStorageDirectory()来得到文件对象 之后通过getAbsolutePath()来获得路径 这样就产生了一个问题——这个路径是内置的SDcard路径还是外接的...
  • Android 获取外置SDcard路径

    千次阅读 2013-06-13 17:03:28
    Android手机支持SDcard。目前很多手机厂商把SDcard集成到手机中,当然有的手机同时也支持可插拔的SDcard。这就有了内置SDcard和位置SDcard之分。...得到的是SDcard路径为内置的SDcard路径。由于And
  • 获得SDCard路径

    2011-10-25 11:54:50
    在android中获得sd卡的路径太常用了,那么如何获得sd卡的路径呢?   public String getSDPath(){   File sdDir = null;   boolean sdCardExist = Environment.getExternalStorageState().equals(android.os...
  • 谷歌为没有内存卡的手机模拟了一个SD卡,占用了原来的SD卡路径,并为真实的sd卡挂载到该目录的子目录,由于所挂载的目录并没有官方规范,所以命名会不同,只能通过搜索,下面是获取android4.0版本sdcard路径示例
  • 获取sdcard路径

    2012-05-24 14:57:40
    获取sdcard路径 Environment.getExternalStorageDirectory().getAbsolutePath(); 判断手机是否有sdcard  String state = Environment.getExternalStorageState();  if(state.equals(Environment.MEDIA_...
  • Android6.0系统插入外部SD卡时,会在storage/下自动生成一个目录,因此不能像之前那样直接把外部存储路径写成"/mnt/sdcard/"的形式,要动态获取卡路径,下面两种方法可以动态获取到外部存储路径。 方法一、 public...
  • Android 7.0对sdcard访问路径做了限制,以下代码是未做限制时的代码import java.io.File;import android.os.Environment;public class Files { // SDcard path private static final String SD_CARD = Environment ...
  • 通过获取挂载节点获取路径

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,204
精华内容 14,881
关键字:

sdcard是什么路径