У меня есть приложение, чтобы проверить, установлено ли приложение, и я использовал это логическое значение
final boolean b1 = appInstalledOrNot("com.whatsapp");
.....
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
boolean app_installed;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
}
catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}
}
Я хочу преобразовать логическое значение в строку и получить правильное значение. Я пробовал это, но если я хочу удалить приложение, получаю сообщение об ошибке «не найти пакет»
String str = String.valueOf(b1);
ошибка внутри приложения .. если нажмите кнопку для удаления .. это означает, что использование для преобразования неверно, потому что при использовании прямых строк работает нормально
Почему именно вам нужно преобразовать логическое значение в строку? Вы не указали, для чего вам нужна строка.
Возможный дубликат Лучший подход к преобразованию логического объекта в строку в Java




String booleanString = Boolean.toString(boolValue)
я пробую это тоже .. та же проблема
This is how you can modify your approach
PackageInfo pinfo;
try {
pinfo = getPackageManager().getPackageInfo("Your package name", 0);
}
catch (NameNotFoundException e1) {
pinfo = null;
}
if (pinfo!=null)
{
**"Installed"**
}
else
{
"Not Installed"
}
Я не понимаю, почему вы так подошли, это даст лучший результат. Проверь это. Вот как мы сравниваем наш пакет с пакетом в playstore.
public String getSignature(String pkgName) throws NameNotFoundException {
PackageInfo pi = pkgMngr.getPackageInfo(pkgName, GET_SIGNATURES);
String signature = pi.signatures[0].toCharsString();
return signature;
}
public boolean doSignaturesMatch(String pkg1, String pkg2) {
boolean match = pkgMngr.checkSignatures(pkg1, pkg2) == SIGNATURE_MATCH;
return match;
}
public boolean isInstalledFromMarket(String pkgName)
throws NameNotFoundException {
String installerPkg = pkgMngr.getInstallerPackageName(pkgName);
boolean installedFromMarket = "com.google.android.feedback"
.equals(installerPkg);
Можете ли вы сообщить точную ошибку, которую вы получаете, включая трассировку стека?