机身位置可以自己写死啊,它基于linux系统的,比如你要定位到自己的应用就/data/data/com.abc

解决方案 »

  1.   

    getExternalStoragePublicDirectory这是内部的啊外部的话
    StorageVolume是这个啊
      

  2.   

    查了下,getExternalStoragePublicDirectory是取得共用存储点,比如音乐,图片等的吧
    StorageVolume没查到是什么东西?
      

  3.   

    http://developer.android.com/guide/topics/data/data-storage.html#filesInternal  可以参考一下 不知道是否是你想要的答案
      

  4.   

    找了很久,发现可以通过反射获取存储器列表
    但是不知道哪个才是内置存储器
    StorageManager storageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE);
    try {
    Class<?>[] paramClasses = {};
    Method getVolumePathsMethod = StorageManager.class.getMethod("getVolumePaths", paramClasses);
    getVolumePathsMethod.setAccessible(true);
    Object[] params = {};
    Object invoke = getVolumePathsMethod.invoke(storageManager, params);
    for (int i = 0; i < ((String[])invoke).length; i++) {
    System.out.println(((String[])invoke)[i]);
    }
    } catch (NoSuchMethodException e1) {
    e1.printStackTrace();
    } catch (IllegalArgumentException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    } catch (InvocationTargetException e) {
    e.printStackTrace();
    }
      

  5.   

    对了,StorageVolume我找到了,但是它是被隐藏的
      

  6.   

    可以反射这个方法getVolumePaths得到路经
      

  7.   

    0内置
    1外置
    结贴吧8楼说的是正确的,Environment.getExternalStorageDirectory()获取到的不一定是内置的,这句代码获取到的是默认存储位置,如果把默认存储位置改为sdcard,那么获取到的就是/storage/sdcard/1/..默认存储位置是内置的,获取到的是/storage/emulator/0/
    单词可能写错,勿介
      

  8.   

    0内置
    1外置
    结贴吧8楼说的是正确的,Environment.getExternalStorageDirectory()获取到的不一定是内置的,这句代码获取到的是默认存储位置,如果把默认存储位置改为sdcard,那么获取到的就是/storage/sdcard/1/..默认存储位置是内置的,获取到的是/storage/emulator/0/
    单词可能写错,勿介我写错了,是/storage/sdcard1和/storage/emulated/0
      

  9.   

    0内置
    1外置
    结贴吧8楼说的是正确的,Environment.getExternalStorageDirectory()获取到的不一定是内置的,这句代码获取到的是默认存储位置,如果把默认存储位置改为sdcard,那么获取到的就是/storage/sdcard/1/..默认存储位置是内置的,获取到的是/storage/emulator/0/
    单词可能写错,勿介我写错了,是/storage/sdcard1和/storage/emulated/0 再补充一点,我是在4.2的系统下测试的,华为手机。
      

  10.   

    0内置
    1外置
    结贴吧8楼说的是正确的,Environment.getExternalStorageDirectory()获取到的不一定是内置的,这句代码获取到的是默认存储位置,如果把默认存储位置改为sdcard,那么获取到的就是/storage/sdcard/1/..默认存储位置是内置的,获取到的是/storage/emulator/0/
    单词可能写错,勿介我写错了,是/storage/sdcard1和/storage/emulated/0 再补充一点,我是在4.2的系统下测试的,华为手机。
    华为C8813,测试,/storage/sdcard0和/storage/sdcard1,根据手机上默认存储位置设置的不同,/storagr/sdcard0可能是内置的,也可能是外置的。有没有办法可以找到真正sd卡的位置???