如何从共享的Facebook链接打开Goog​​le Play应用?

时间:2014-01-14 14:21:31

标签: android facebook android-intent

我的应用可以在Facebook上分享链接,但共享链接会在浏览器上打开Goog​​le播放,而不是直接在Google Play应用中播放。这对用户来说变得更加困难,并且不会产生太多下载。如何获取共享链接以打开Goog​​le Play应用而不是浏览器?

我认为必须使用

创建正确的意图
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");

必须以

开头
startActivity(Intent.createChooser(sharingIntent, "Share via"));

问题是如何设置intent中的信息(创建intent和启动它之间的代码)。我之前使用过这段代码,它启动了应用程序的网页而没有任何问题:

sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Product name");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "https://play.google.com/store/apps/details?id=example.package");

我尝试用以下代码替换它,这应该启动Google游戏:

sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Product name");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.parse("market://details?id=example.package"));

这导致当我尝试从Facebook共享链接时,不包括指向appstore的链接。我用两种不同的设备进行测试,这两种设备都有谷歌播放。我也尝试用

sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Product name");
sharingIntent.setData(Uri.parse("market://details?id=example.package"));

这导致错误消息“无法找到执行此操作的应用程序”。你知道我怎么解决这个问题吗?我在这个帖子中用示例包替换了我的应用程序的包名,但是在测试时我使用了正确的包名。

1 个答案:

答案 0 :(得分:0)

我猜您正在关注this guide以决定如何格式化您的意图。

我看到的是,在使用“market://”方案时,您正在使用Uri.parse。

sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.parse("market://details?id=example.package"));

请注意,Uri.parse未返回String,而是URI,当您想要分享任何内容时,您必须向行动发送String {} Intent.ACTION_SEND,例如您正在使用播放网址。该指南讨论了Uri.parse("market://,但其意图是动作Intent.ACTION_VIEW,这是从创建意图的应用程序直接打开播放应用程序,而不是创建要共享的链接。

因此,如果您想共享指向您应用的链接,您应该像使用普通网址一样分享链接,作为字符串

sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Product name");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "market://details?id=example.package");

这样,该链接将包含在Facebook上发布的内容中。但是知道,我们不知道Android设备会真正理解该方案并打开它,或者即使facebook会将其作为链接发布。

但是,无论如何。我认为您的错误只是前一步:您为什么要共享指向产品播放应用页面的链接?如果在Facebook上看到该链接的用户正在使用Android手机,那可能没问题,但如果用户使用的是任何其他未运行Android的智能手机,会发生什么?意志只是一个断开的链接,这根本没用。

并且,正如您可以在链接指南中阅读,

  

http://让用户选择是否启动Play商店应用   或浏览器来处理请求。如果浏览器处理   请求,它会在Google Play网站上加载目标页面。

因此,当从Android设备打开时,用户将能够选择如何打开它。

所以,我肯定会分享一个指向Google Play网站的链接。