getInstallerPackageName(строка): строка?’ устарел. Устарел в Java

#android #deprecated

#Android #устарел

Вопрос:

Я написал простую формулировку, подобную этой:

 val installer = context.packageManager.getInstallerPackageName(context.packageName)
 

но теперь он устарел, как показано на рисунке:

введите описание изображения здесь

Есть ли какой-либо альтернативный способ получить имя пакета приложения, в котором установлено ваше приложение?

Комментарии:

1. Вы читали сообщение об устаревании метода ?

2. Для вызова требуется уровень API R

3. @ianhanniballake Что должно быть передано getInstallSourceInfo(String) ?

4. @androiddeveloper имя пакета

5. @MohammadSommakia Извините, я имею в виду: как я могу получить тот же результат, что и исходное «getInstallerPackageName»? Какого имени пакета установщика?

Ответ №1:

Вот как вы можете использовать новый:

     fun getInstallerPackageName(context: Context, packageName: String): String? {
        kotlin.runCatching {
            if (VERSION.SDK_INT >= VERSION_CODES.R)
                return context.packageManager.getInstallSourceInfo(packageName).installingPackageName
            @Suppress("DEPRECATION")
            return context.packageManager.getInstallerPackageName(packageName)
        }
        return null
    }