== 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í:
- ¿Cómo comparo cadenas en Java? 23 respuestas
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.