Environment.getExternalStorageDirectory().toString()

解决方案 »

  1.   

    Environment.getExternalStorageDirectory().toString() 返回的是哪个呢?
      

  2.   

    BroadcastReceiver mExternalStorageReceiver;
    boolean mExternalStorageAvailable = false;
    boolean mExternalStorageWriteable = false;void updateExternalStorageState() {
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)) {
            mExternalStorageAvailable = mExternalStorageWriteable = true;
        } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
            mExternalStorageAvailable = true;
            mExternalStorageWriteable = false;
        } else {
            mExternalStorageAvailable = mExternalStorageWriteable = false;
        }
        handleExternalStorageState(mExternalStorageAvailable,
                mExternalStorageWriteable);
    }void startWatchingExternalStorage() {
        mExternalStorageReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                Log.i("test", "Storage: " + intent.getData());
                updateExternalStorageState();
            }
        };
        IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
        filter.addAction(Intent.ACTION_MEDIA_REMOVED);
        registerReceiver(mExternalStorageReceiver, filter);
        updateExternalStorageState();
    }void stopWatchingExternalStorage() {
        unregisterReceiver(mExternalStorageReceiver);
    }
      

  3.   

    这个是厂商扩展的,要看具体平台了,各家都不确定的。我们自己做的平台,也遇到此问题。 由于Android框架及API已经钉死了,可读写的存储器只能是/sdcard如果有多个磁盘,没辙了,只能在/sdcard下再挂载了。
    至于外置挂载的节点叫什么名字,每家的叫法可能都不一样。能保证的,就是都在/sdcard下面。内置的,可以保证一定是 /sdcard, 否则拔了外置卡,内置磁盘也就不能用了。
    外置不定。
      

  4.   


    Environment.getExternalStorageDirectory()