首页 > 解决方案 > 我可以确认应用用户确实与 Intent.ACTION_SEND 共享了我的应用链接吗?

问题描述

在我的应用程序中,我有一个“共享应用程序链接”按钮,单击该按钮可在社交媒体应用程序(WhatsApp、Instagram、Twitter)中共享应用程序播放商店链接,Intent.ACTION_SEND并为此操作为用户提供奖励。但我无法确认用户是否在社交媒体应用程序中成功分享了链接,因为 Intent.ACTION_SEND 没有任何回报。这种情况我该怎么办?我也对其他想法持开放态度,然后确认或使用另一个意图过滤器。

我的代码是:

fun shareAppLink(view: View){
        val shareIntent = Intent(Intent.ACTION_SEND)
        shareIntent.type = "text/plain"
        shareIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name))
        var shareMessage = "\nLet me recommend you this application\n\n"
        shareMessage = """${shareMessage}https://play.google.com/store/app/details?id=${this.packageName}""".trimIndent()
        shareIntent.putExtra(Intent.EXTRA_TEXT, shareMessage)
        var whiteList=mutableListOf("com.whatsapp","com.instagram.android","com.twitter.android")
        startActivity(CustomChooserIntent.create(packageManager,shareIntent,"",whiteList))

CustomChooserIntent使用白名单来允许选择哪些应用程序。

标签: androidkotlinandroid-intentintentfilterandroid-sharing

解决方案


抱歉,这是不可能的。您对原因是正确的:没有返回值。不可能在所有可能的共享方法中都有一个合理的返回值——例如,如果他们将它作为草稿保存在他们的电子邮件客户端中以便以后发送怎么办?

如果你想确认用户确实分享了一些东西,你总是可以使用特定于应用程序的 API(例如,这个用于 Twitter 的 API),它允许你在你的应用程序中分享帖子。当然,不要忘记,没有什么能阻止用户在发布帖子后立即删除帖子 :-)


推荐阅读