2016-05-03 41 views
0

我试过这个代码, 我选择了Facebook应用程序并转到了发布页面,但所选文字并未显示。如何分享应用程序到Facebook的特定文本?

public void onShareClick(View v){ 
    List<Intent> targetShareIntents=new ArrayList<Intent>(); 
    Intent shareIntent=new Intent(); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    List<ResolveInfo> resInfos=getPackageManager().queryIntentActivities(shareIntent, 0); 
    if(!resInfos.isEmpty()){ 
     System.out.println("Have package"); 
     for(ResolveInfo resInfo : resInfos){ 
      String packageName=resInfo.activityInfo.packageName; 
      Log.i("Package Name", packageName); 
      if(packageName.contains("com.facebook.katana")){ 
       Intent intent=new Intent(); 
       intent.setComponent(new ComponentName(packageName, resInfo.activityInfo.name)); 
       intent.setAction(Intent.ACTION_SEND); 
       intent.setType("text/plain"); 
       intent.putExtra(Intent.EXTRA_TEXT, "Text"); 
       intent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); 
       intent.setPackage(packageName); 
       targetShareIntents.add(intent); 
      } 
     } 
     if(!targetShareIntents.isEmpty()){ 
      System.out.println("Have Intent"); 
      Intent chooserIntent=Intent.createChooser(targetShareIntents.remove(0), "Choose app to share"); 
      chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetShareIntents.toArray(new Parcelable[]{})); 
      startActivity(chooserIntent); 
     }else{ 
      System.out.println("Do not Have Intent"); 
      showDialaog(this); 
     } 
    } 
} 

为什么选择的文本不能共享在Facebook上显示?我阅读Facebook的政策,他们不允许这样做,但其他应用程序能够这样做。有什么方法可以实现这一目标吗?

+1

的可能的复制[Android的分享 - Facebook的SDK - ShareActionProvider(http://stackoverflow.com/questions/13371663/android-share-facebook-sdk-shareactionprovider) –

回答

0

试试这个:

public void setupFacebookShareIntent() { 

     ShareDialog shareDialog; 

     FacebookSdk.sdkInitialize(getApplicationContext()); 
     shareDialog = new ShareDialog(this); 

     ShareLinkContent linkContent = new ShareLinkContent.Builder() 
       .setContentTitle("YOUR TITLE") 
       .setContentDescription("YOUR DESCRIPTION") 
       .setContentUrl(Uri.parse("http://xxxx.com/")) 
       .setImageUrl(Uri.parse("http://xxxx.com/")) 
       .build(); 

     shareDialog.show(linkContent); 
    } 
相关问题