Mise à jour Je dois cibler Android 2.1.Filtrer la liste des applications sur la carte SD/interne
J'essaie de savoir comment lister les applications par programmation, filtrées en étant sur la carte SD ou le stockage interne.
Je ne sais pas comment aborder cela. Dois-je d'abord détecter le point de montage de la carte SD et voir si un répertoire de données de l'application est dessus? Par exemple
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
List<ResolveInfo> intents = m_pm.queryIntentActivities(mainIntent, 0);
File baseSD = Environment.getExternalStorageDirectory();
int count = intents.size();
for (int i = 0; i < count; i++) {
String baseApp = intents.get(i).activityInfo.applicationInfo.dataDir;
if (baseApp.startsWith(baseSD.getAbsolutePath()) {
// This is on the SD card, do whatever with the app details
}
else {
// This is on internal storage
}
}
}
Semble très bas-front, il doit y avoir une manière plus appropriée. Toute aide est appréciée.
Merci pour la réponse rapide et il ne fait réponse Ma question initiale, cependant je dois cibler 2.1. Jusqu'à présent, tous les exemples que je peux trouver utilisent le répertoire pour correspondre. Je vais mettre à jour ma question. – Kirk
Après avoir réfléchi à ce sujet, cette partie de mon application n'a pas de sens à moins qu'ils n'utilisent 2.2 pour que cela fonctionne bien. – Kirk
Pour moi, c'est la même chose, j'ai une partie de mon application qui peut être utilisée à partir d'Android 2.2. Quoi qu'il en soit remonter le moral, car 85% de la version Android est 2.2 et plus. http://developer.android.com/resources/dashboard/platform-versions.html – gwa