Преобразовать логическое значение в строку

У меня есть приложение, чтобы проверить, установлено ли приложение, и я использовал это логическое значение

 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);

Можете ли вы сообщить точную ошибку, которую вы получаете, включая трассировку стека?

Mureinik 28.03.2018 12:38

ошибка внутри приложения .. если нажмите кнопку для удаления .. это означает, что использование для преобразования неверно, потому что при использовании прямых строк работает нормально

J.was2a 28.03.2018 12:43

Почему именно вам нужно преобразовать логическое значение в строку? Вы не указали, для чего вам нужна строка.

Leo Aso 28.03.2018 13:10
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
1 271
2

Ответы 2

String booleanString = Boolean.toString(boolValue)

я пробую это тоже .. та же проблема

J.was2a 28.03.2018 12:49
   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);

Другие вопросы по теме