您的位置:首页 > 其它

为何sd卡内存那么大而手机会提示内存不足呢

2014-11-05 16:03 239 查看
很多人都会有这个疑问,老子还有十几个G,怎么可能内存不足呢看,软件怎么就安装不了,怎么就不能安装到sd卡呢

在 Android2.2版本及之后,AndoridManifest.xml 中有一个属性: android:installLocation ,可以通过设置这个属性的三个值 "auto" | "internalOnly" | "preferExternal",来决定将应用程序安装到哪里。

auto:

程序可能安装到外部存储介质上(例如,SDCard),但是默认会被安装到手机内存中,当手机内存为空时,程序将被安装到外部存储介质上。当程序安装在手机上后,用户可以在外部存储介质和手机内存上自行移动。

internalOnly(默认值):

当设置了该值后,程序只能安装在内存中,当手机内存为空时,安装不成功。

preferExternal:

将程序安装在外部存储介质上,但系统不保证程序一定会安装到外部存储介质上,当外部存储介质不可以或为空时,程序将被安装到内存中。若程序使用了forward-locking机制时也将被安装到内存中,因为外部存储不支持这种机制。程序安装后,用户同样可以在外部存储介质和内存之间自由移动。

当我们想知道应用程序是否安装在SDCard中时,可用如下语句判断:

[java] view
plaincopy

/** 

 * 判断包名所对应的应用是否安装在SD卡上 

 * @return, true if install on SD card  

 */  

public static boolean isInstallOnSDCard(String packageName) {  

PackageManager pm = LauncherApplication.getApp().getPackageManager();  

ApplicationInfo appInfo;  

try {  

    appInfo = pm.getApplicationInfo(packageName, 0);  

    if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {  

        return true;  

    }  

} catch (NameNotFoundException e) {  

    e.printStackTrace();  

}  

return false;
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: