J'ai une application Android où je veux vérifier si un nom d'application installé correspond à une chaîne passée à la fonction contenant ce code. Le code et l'exemple est ci-dessous:Pourquoi la comparaison String to String échoue-t-elle?
private Boolean checkInstalledApp(String appName){
PackageManager pm = this.getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
Boolean isInstalled = false;
for(ResolveInfo info: list) {
if (info.activityInfo.applicationInfo.loadLabel(pm).toString()==appName){
isInstalled = true;
break;
}
}
return isInstalled;
}
En supposant que vous appelé checkInstalledApp("SetCPU");
et le nom de l'application sur le téléphone est appelé la même chose, il doit retourner true
. Cependant, il ne le fait jamais. J'ai noté les résultats et il devrait correspondre mais ce n'est pas le cas. Quelqu'un peut-il m'éclairer pour savoir pourquoi cela ne fonctionne pas?
Ah, je vois. C'est définitivement une erreur de la part de ce nouveau venu. Merci. –