2016-05-12 57 views
7

我试图使用shareintent在我的应用程序,但共享一个链接到Facebook的时候我遇到了一个问题ShareContent,没有图像显示用的预览。所以尝试自定义android共享内容,以便它在使用facebook时选择facebooksdk中的共享功能,但似乎无法使其工作。下面是我试图用于定制shareintent代码,使用Facebook SDK的股价意图的Android

Intent share = new Intent(android.content.Intent.ACTION_SEND);   
PackageManager pm = getPackageManager(); 
List<ResolveInfo> activityList = pm.queryIntentActivities(share, 0); 
for (final ResolveInfo app : activityList) { 
    if (app.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana")) { 
     ShareLinkContent content = new ShareLinkContent.Builder() 
          .setContentTitle(property.PropertyName) 
          .setImageUrl(Uri.parse(property.ImagePath)) 
          .setContentUrl(Uri.parse(property.PropertyPermaLink)) 
          .build(); 

     ShareDialog shareDialog = new ShareDialog(this); 

     shareDialog.canShow(content); 

     break; 
    } else { 
     share.setType("text/plain"); 
     share.addFlags(share.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 
     share.putExtra(Intent.EXTRA_SUBJECT, ""); 
     share.putExtra(Intent.EXTRA_TEXT, property.PropertyPermaLink); 
     startActivity(Intent.createChooser(share, "Share property!")); 
    } 
} 

调试上面的代码我发现activitylist仅由一个单一的元件的后。那么我该如何解决这个问题呢?

+0

检查这个问题,也许它会帮助你http://stackoverflow.com/questions/35155890/android-share-custom-link-via-facebook –

+0

那只是为Facebook的份额。但我想定制我的共享意图,从意图使用所需的Facebook共享。 –

回答

1

您需要添加MIME数据类型发送意图处理,以获得相应的活动返回:

share.setType("text/plain"); 
0

刚刚尝试SharePhotoContent代替ShareLinkContent。 如果你想使用ShareLinkContent,请确保property.ImagePath指出,真正的HTTP图像链接。如果链接包含https工作在默认的Android浏览器应用程序检查。