`getInstallerPackageName(String): String?'方法已被弃用。在Java中被弃用。

5

我写了一个简单的语句,就像这样:

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

但是如图所示,它现在已经被弃用:

enter image description here

是否有其他替代方法可以获取已安装您的应用程序的应用程序包名称?


1
你读了该方法的弃用消息吗? - ianhanniballake
调用需要API级别R。 - Mohammad Sommakia
@ianhanniballake 应该传递什么参数给 getInstallSourceInfo(String) 函数? - android developer
@androiddeveloper 包名 - Mohammad Sommakia
@MohammadSommakia 抱歉,我的意思是:我如何获得与原始的“getInstallerPackageName”相同的结果?安装程序包名称是什么? - android developer
正如文档中所述,它将返回一个字符串值,应该是安装您的应用程序的包名称。我还没有尝试过它。 - Mohammad Sommakia
1个回答

10

以下是如何使用新版:

    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
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接