У меня есть приложение для Android, где я хочу проверить, соответствует ли установленное имя приложения строке, переданной функции, содержащей этот код. Код и пример ниже:
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;
}
Предполагается, что вы позвонили checkInstalledApp("SetCPU");
, а имя приложения на телефоне называется так же, как и в случае возврата true
. Однако этого никогда не происходит. Я зарегистрировал результаты, и они должны совпадать, но это не так. Может кто-нибудь объяснить мне, почему это не работает?