#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
}