Android和Facebook共享意图

Android和Facebook共享意图

我正在开发一个Android应用程序,我想知道如何使用Android的共享意图从应用程序内部更新应用程序用户的状态。

在浏览了Facebook的SDK之后,看起来这很容易做到,但是我很想让用户通过常规的共享意图弹出窗口来做这件事?见此:

https://img3.mukewang.com/5d241d870001518804800800.jpg

我已经尝试了通常的共享意图代码,但这似乎不再适用于Facebook。

public void invokeShare(Activity activity, String quote, String credit) {
    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, activity.getString(R.string.share_subject));
    shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Example text");    

    activity.startActivity(Intent.createChooser(shareIntent, activity.getString(R.string.share_title)));}

更新:在做了更多的调查之后,它看起来像是Facebook应用程序中的一个尚未解决的bug!Facebook bug)同时,看起来我不得不忍受负面的“分享不起作用!”评论。干杯Facebook:*(


慕的地6264312
浏览 334回答 3
3回答

慕容森

通常的方式创建所需内容的通常方法是简单地执行以下操作:&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;intent&nbsp;=&nbsp;new&nbsp;Intent(Intent.ACTION_SEND); &nbsp;&nbsp;&nbsp;&nbsp;intent.setType("text/plain"); &nbsp;&nbsp;&nbsp;&nbsp;intent.putExtra(Intent.EXTRA_TEXT,&nbsp;"The&nbsp;status&nbsp;update&nbsp;text"); &nbsp;&nbsp;&nbsp;&nbsp;startActivity(Intent.createChooser(intent,&nbsp;"Dialog&nbsp;title&nbsp;text"));这对我来说没有任何问题。另一种方法(也许)这样做的潜在问题是,您还允许通过电子邮件、SMS等发送消息。下面的代码是我在应用程序中使用的,它允许用户使用Gmail发送电子邮件。我猜你可以尝试改变它,使它只适用于Facebook。我不确定它是如何对任何错误或异常做出反应的(我猜如果没有安装Facebook,就会发生这种情况),所以您可能需要对其进行一些测试。&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;emailIntent&nbsp;=&nbsp;new&nbsp;Intent(android.content.Intent.ACTION_SEND); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;recipients&nbsp;=&nbsp;new&nbsp;String[]{"e-mail&nbsp;address"}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,&nbsp;recipients); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,&nbsp;"E-mail&nbsp;subject"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,&nbsp;"E-mail&nbsp;text"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emailIntent.setType("plain/text");&nbsp;//&nbsp;This&nbsp;is&nbsp;incorrect&nbsp;MIME,&nbsp;but&nbsp;Gmail&nbsp;is&nbsp;one&nbsp;of&nbsp;the&nbsp;only&nbsp;apps&nbsp;that&nbsp;responds&nbsp;to&nbsp;it&nbsp;-&nbsp;this&nbsp;might&nbsp;need&nbsp;to&nbsp;be&nbsp;replaced&nbsp;with&nbsp;text/plain&nbsp;for&nbsp;Facebook &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;PackageManager&nbsp;pm&nbsp;=&nbsp;getPackageManager(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;List<ResolveInfo>&nbsp;matches&nbsp;=&nbsp;pm.queryIntentActivities(emailIntent,&nbsp;0); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResolveInfo&nbsp;best&nbsp;=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(final&nbsp;ResolveInfo&nbsp;info&nbsp;:&nbsp;matches) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(info.activityInfo.packageName.endsWith(".gm")&nbsp;|| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info.activityInfo.name.toLowerCase().contains("gmail"))&nbsp;best&nbsp;=&nbsp;info; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(best&nbsp;!=&nbsp;null) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;emailIntent.setClassName(best.activityInfo.packageName,&nbsp;best.activityInfo.name); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startActivity(emailIntent); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toast.makeText(this,&nbsp;"Application&nbsp;not&nbsp;found",&nbsp;Toast.LENGTH_SHORT).show(); &nbsp;&nbsp;&nbsp;&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android