如何查看应用程序是否已移至Android上的SD卡

时间:2012-02-14 22:54:36

标签: android manifest

我使用了installLocation,可以确定是否可以移动应用程序。但是,当我们想知道某个应用程序是否已移至SD卡时,我无法弄清楚会发生什么。

ApplicationInfo属性FLAG_EXTERNAL_STORAGE仅告知您应用是否已安装到SD,如果已移至该应用。我正在生成可以移动到SD卡的应用程序列表。因此,我生成的第一个列表正在使用清单的installLocation。从这个列表中我可以过滤掉已经移动到SD卡的应用程序。

3 个答案:

答案 0 :(得分:2)

要检查应用程序是否安装在SD卡中,请执行以下操作:

ApplicationInfo io = context.getApplicationInfo();

if(io.sourceDir.startsWith("/data/")) {

//application is installed in internal memory

} else if(io.sourceDir.startsWith("/mnt/") || io.sourceDir.startsWith("/sdcard/")) {

//application is installed in sdcard(external memory)

}

答案 1 :(得分:0)

如果您的安装位置是自动的,您可以将应用程序从SD卡移动到手机,反之亦然。您可以在设备应用程序管理器中手动检查应用程序位置。

答案 2 :(得分:0)

假设this question (and its accepted answer)可以提供帮助。

简而言之:getApplicationInfo()。sourceDir,为documented here