java android string android-studio package-managers

== y.equals() no funcionan en java



android string (1)

Reemplazar: if (packageName != sysName)

Con: if (!packageName.equals(sysName.toString()))

Además, tienes un ; al final de if que no debería estar allí. (Aquí: if (packageName.equals(sysName.toString())) ; )

En realidad, para formar mejor su condición, debe tener un bloque if-else lugar de 2 if s.

algo como:

if (packageName.equals(sysName.toString())){ Log.d("", "IT MATCHES"); } else { Log.d("", "NOPE DOESNT MATCH"); }

Esta pregunta ya tiene una respuesta aquí:

Así que estaba tratando de comparar la cadena en PackageInfo y ApplicationInfo y recuperar su nombre de paquete en Android Studio.

List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_PERMISSIONS); for (PackageInfo app : apps) for(ApplicationInfo packageInfo:packages) String packageName = packageInfo.packageName; String sysName = app.packageName; if (packageName != sysName) { Log.d("", "NOPE DOESNT MATCH"); break; } if (packageName.equals(sysName.toString())) ; { Log.d("", "IT MATCHES"); //do something after that

Entonces, el problema surgió cuando vi dentro del modo de depuración, en realidad TENÍAN la misma cadena

Ejemplo en modo de depuración:

com.android.quicksearchbox com.android.quicksearchbox

Vuelve como " NOPE NO COINCIDE "

Tengo mucha curiosidad por qué sucederá esto y he intentado otra forma como recortar para quitar los espacios en blanco entre y no, todavía no me devuelve "COINCIDE", ¿alguien puede ayudarme por favor?

Gracias.