Android 安卓手机存储
我正在开发一款Android应用程序。我注意到的一点是,当我想使用存储时,基本上有两种选择:Android 安卓手机存储,android,Android,我正在开发一款Android应用程序。我注意到的一点是,当我想使用存储时,基本上有两种选择: 使用包存储(代码如下): 如果有SD卡,我可以使用外部存储器: /** * check if the phone has SD card * @return */ public static boolean hasSDCard(){ boolean fHasSDCard = false; if(Environment.MEDIA_MOUNTED.equals(E
/**
* check if the phone has SD card
* @return
*/
public static boolean hasSDCard(){
boolean fHasSDCard = false;
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
fHasSDCard = true;
}
return fHasSDCard;
}
/**
* get external storage directory path
* @return
*/
public static String getExternalStoragePath(){
String strPath = "";
if(hasSDCard()){
strPath = Environment.getExternalStorageDirectory().getPath();
}
return strPath;
}
谢谢有些设备没有SD卡。它们的内部内存上有一个分区,您可以称之为共享内存。查看developer.android.com上的文档,您可以阅读以下内容: 注意:这里的“外部”一词不要混淆。此目录最好被视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上,这是一个SD卡,但它也可以作为设备中的内置存储器来实现,该设备不同于受保护的内部存储器,并且可以作为文件系统安装在计算机上 因此,正如Chris在上面所评论的,如果设备未通过usb存储或类似方式安装到计算机上,则应始终存在SD卡分区。您的检查方法应该可以正常工作。如果不可用,请告诉用户在连接时卸载手机 但您可能会问自己:“我是否希望其他应用程序访问此数据?”。如果不是,最好的选择是使用内部存储器。对于某些使用SD卡且没有太多内存的设备来说,这可能是一个问题。可能会检查两个存储是否有足够的空间?Google Play销售的任何设备最初都没有外部存储,但如果是可移动的,则可以将其删除,在具有USB大容量存储的版本中,由于通过USB安装到PC上,因此可能无法使用。或者它可能已满,或者可能已损坏/损坏。所以是的,它并不总是可用的。但有许多应用程序会抱怨,如果不是这样,就会禁用功能(而不是崩溃)。
/**
* check if the phone has SD card
* @return
*/
public static boolean hasSDCard(){
boolean fHasSDCard = false;
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
fHasSDCard = true;
}
return fHasSDCard;
}
/**
* get external storage directory path
* @return
*/
public static String getExternalStoragePath(){
String strPath = "";
if(hasSDCard()){
strPath = Environment.getExternalStorageDirectory().getPath();
}
return strPath;
}