android - 我可以确认应用用户确实与 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
使用白名单来允许选择哪些应用程序。
解决方案
抱歉,这是不可能的。您对原因是正确的:没有返回值。不可能在所有可能的共享方法中都有一个合理的返回值——例如,如果他们将它作为草稿保存在他们的电子邮件客户端中以便以后发送怎么办?
如果你想确认用户确实分享了一些东西,你总是可以使用特定于应用程序的 API(例如,这个用于 Twitter 的 API),它允许你在你的应用程序中分享帖子。当然,不要忘记,没有什么能阻止用户在发布帖子后立即删除帖子 :-)
推荐阅读
- r - Bizdays 不排除周末
- c - 无法找到分段错误
- java - Azure Java SDK - 无法获取资源指标:ApiVersion:2018-01-01 不支持在非 Arm 资源 Id 级别进行查询
- java - MongoDB 中的完全匹配文档
- java - 需要用一个按钮打开另一个JFrame,但是JFrame在其他组件中
- android - 在 android 上设置可绘制图标不适用于我
- javascript - AngularJS 问题出现在 HTML 与 if/else statemetns 中的插值
- laravel - 如何解决“属性内的插值已被删除”。Vue 和 Laravel 5.8
- python - Python 中 MatLab 中 snr() 的等效函数
- python-3.x - 从 Labview 中的 VISA 资源中获取相关数据以在 pyVISA 中使用