kotlin 是任何正确的方法来打开直接Google Play商店点击按钮后,在Android

j1dl9f46  于 2023-01-31  发布在  Kotlin
关注(0)|答案(4)|浏览(183)

我用下面的代码直接打开Google Play商店每当点击分享按钮。
使用Kotlin延长线

//Share apk
fun shareApp(message : String, activity: Activity){
    val sendIntent = Intent()
    sendIntent.action = Intent.ACTION_SEND
    sendIntent.putExtra(
        Intent.EXTRA_TEXT,
        message
    )
    sendIntent.type = "text/plain"
    activity.startActivity(sendIntent)
}

片段-〉

shareApp("https://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID, requireActivity())

但它不是直接重定向到播放商店,它重定向到浏览器,然后打开播放商店。
我想打开直接播放商店不从浏览器。

pbwdgjma

pbwdgjma1#

这对我很有效...

private fun goToAppStore() {
    val sendIntent = Intent()
    sendIntent.action = Intent.ACTION_VIEW
    sendIntent.data = Uri.parse("market://details?id=$YOUR_PACKAGE_NAME")
    if(sendIntent.resolveActivity(packageManager) != null) {
        startActivity(sendIntent)
    }
}
rdrgkggo

rdrgkggo2#

你已经做对了,但是,你错过了一件事。你还没有设置它打开的包。所以,试试下面的代码:

fun shareApp(message : String, activity: Activity){
    val sendIntent = Intent()
    sendIntent.action = Intent.ACTION_SEND
    sendIntent.package = "com.android.vending" // this is the line you missed
    sendIntent.putExtra(
        Intent.EXTRA_TEXT,
        message
    )
    sendIntent.type = "text/plain"
    activity.startActivity(sendIntent)
}
pdsfdshx

pdsfdshx3#

这个解决方案对我来说效果很好。

fun shareApp(appPackageName: String, activity: Activity){
try {
        startActivity(Intent(
            Intent.ACTION_VIEW,
            Uri.parse("market://details?id=$appPackageName")
        ))
    } catch (e : ActivityNotFoundException) {
        startActivity(
            Intent(
                Intent.ACTION_VIEW,
                Uri.parse("https://play.google.com/store/apps/details?id=$appPackageName")
            )
        )
    }
}

因此,在这里我们使用两件事,如果任何设备特定的应用程序商店可用,然后它打开它,否则它直接打开播放商店。
每当我点击按钮,然后它显示我选择市场应用程序或播放商店,当我点击播放商店,然后它打开并显示相关的应用程序。
我希望这对你有帮助。

3pvhb19x

3pvhb19x4#

在案件有用的人,我用这个在组合功能屏幕上打开Google Play商店从应用程序本身内部的应用程序页面:

private fun goToGooglePLayStore(context: Context) {
    try {
        startActivity(context,
            Intent(Intent.ACTION_VIEW, Uri.parse(
                "market://details?id=$GOOGLE_PLAY_STORE_PACKAGE_NAME")),
        null)
    } catch (e: ActivityNotFoundException) {
        startActivity(context,
            Intent(Intent.ACTION_VIEW, Uri.parse(
                "https://play.google.com/store/apps/details?id=" +
                        "$GOOGLE_PLAY_STORE_PACKAGE_NAME")),
            null
        )
    }
}

其中GOOGLE_PLAY_STORE_PACKAGE_NAME = {您的应用程序包名称}
context:从可组合函数传递的活动上下文,其中:

val context = LocalContext.current

相关问题