【问题标题】:Android sharing optionsAndroid 共享选项
【发布时间】:2013-08-07 16:02:39
【问题描述】:

我正在编写一个具有共享功能的应用程序,我希望有一个按钮可以通过特定的社交媒体共享,即。 Facebook,无需打开选择器。有没有办法做到这一点?我一直在查看源代码以查看是否可以找到任何东西,但到目前为止我找不到这样做的方法。

理想情况下,我想做的是调用选择器执行的方法来获取要与之共享的适用应用程序列表,然后为我定位的主要社交媒体平台显示一个按钮。然后,当用户单击其中一个按钮时,它会将他们直接带到加载了媒体的应用程序中,因此他们所要做的就是单击帖子进行分享。

我知道使用选择器不是火箭科学,但我希望应用程序尽可能简单,因此删除选择器将是朝着它迈出的良好一步,因为它会删除许多不必要的选项,例如电子邮件和一些人们不倾向于使用的手机附带的东西。尽管我很可能无论如何都会拥有选择器,以防用户也想以其他方式共享它,但我希望它不是唯一的共享方式。

一个完整的解决方案会很棒,但是在查看源代码的位置方面朝着正确的方向前进也很棒。

【问题讨论】:

    标签: android android-intent sharing android-sharing


    【解决方案1】:

    我没有对此进行测试,但您是否尝试过这样的事情:

    Intent fb = new Intent(Intent.ACTION_SEND);
    fb.sharingIntent.setClassName("com.facebook.katana", "com.facebook.katana.ShareLinkActivity");
    fb.putExtra(Intent.EXTRA_TEXT, "message");
    
    Intent twitter = new Intent(Intent.ACTION_SEND);
    twitter.setClassName("com.twitter.android","com.twitter.android.PostActivity");
    twitter.putExtra(Intent.EXTRA_TEXT, "message");
    
    Intent intent = Intent.createChooser(fb, "Share");
    intent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {
        twitter, ....more here
    });
    startActivity(intent);
    

    基于此答案: How to force Share Intent to open a specific app?

    由于这些活动也可以更改尝试 url 或他们网站中记录的任何内容,因此如果安装,它会回退到他们的 android 意图。

    【讨论】:

    • 谢谢,这似乎是正确的做法,目前我只显示如果安装了相关应用程序则共享按钮,因此不需要回退。当我努力确保它是正确的方法时,我会接受答案,以防其他人在未来寻找它。
    • 这是正确的方法,必须通读一些链接的东西才能使其完全正常工作,并且必须创建一个函数来从下面的代码中获取的信息中读取活动。使用下面的代码而不是静态声明它们Intent intent = new Intent(android.content.Intent.ACTION_SEND); intent.setType("image/*"); List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(intent, 0);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2012-09-20
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多