王立平--scard0与scard1分别指的是什么?以及路径获取
一般是:
scard0:指系统内部存储
scard1:指外插的sd卡
也有特例。。
分别获取路径的方法:
package com.main; import java.lang.reflect.Method; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.storage.StorageManager; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class MainActivity extends Activity { TextView tv1; TextView tv2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv1 = (TextView) findViewById(R.id.tv1); tv2 = (TextView) findViewById(R.id.tv2); String str1 = getPrimaryStoragePath(); String str2 = getSecondaryStoragePath(); tv1.setText(str1); tv2.setText(str2); } private static final String TAG = "PhoneStatusBarPolicy"; public String getPrimaryStoragePath() { try { StorageManager sm = (StorageManager) getSystemService(Context.STORAGE_SERVICE); Method getVolumePathsMethod = StorageManager.class.getMethod( "getVolumePaths", null); String[] paths = (String[]) getVolumePathsMethod.invoke(sm, null); // first element in paths[] is primary storage path return paths[0]; } catch (Exception e) { Log.e(TAG, "getPrimaryStoragePath() failed", e); } return null; } public String getSecondaryStoragePath() { try { StorageManager sm = (StorageManager) getSystemService(Context.STORAGE_SERVICE); Method getVolumePathsMethod = StorageManager.class.getMethod( "getVolumePaths", null); String[] paths = (String[]) getVolumePathsMethod.invoke(sm, null); // second element in paths[] is secondary storage path return paths[1]; } catch (Exception e) { Log.e(TAG, "getSecondaryStoragePath() failed", e); } return null; } public String getStorageState(String path) { try { StorageManager sm = (StorageManager) getSystemService(STORAGE_SERVICE); Method getVolumeStateMethod = StorageManager.class.getMethod( "getVolumeState", new Class[] { String.class }); String state = (String) getVolumeStateMethod.invoke(sm, path); return state; } catch (Exception e) { Log.e(TAG, "getStorageState() failed", e); } return null; } }
红米手机的效果:效果: