2012-11-12 35 views
2

它在電子郵件和Twitter中共享圖像和文本,但在facebook文本中未顯示。 Is it possible to share text to facebook using intent?.發送文本和應用程序名稱到Facebook

請幫忙。

private void share(String nameApp, String imagePath) 
{ 
    try 
    { 
     List<Intent> targetedShareIntents = new ArrayList<Intent>(); 
     Intent share = new Intent(android.content.Intent.ACTION_SEND); 
     share.setType("image/jpeg"); 
     List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0); 
     if (!resInfo.isEmpty()){ 
      for (ResolveInfo info : resInfo) { 
       Intent targetedShare = new Intent(android.content.Intent.ACTION_SEND); 
       targetedShare.setType("image/jpeg"); // put here your mime type 
       if (info.activityInfo.packageName.toLowerCase().contains(nameApp) || info.activityInfo.name.toLowerCase().contains(nameApp)) { 
        targetedShare.putExtra(Intent.EXTRA_SUBJECT, "Virtual Mirror Photo"); 
        targetedShare.putExtra(Intent.EXTRA_TEXT,"This photo is created by Virtual Mirror App.\n\nInfoshore Team"); 
        targetedShare.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(imagePath))); 
        targetedShare.setPackage(info.activityInfo.packageName); 
        targetedShareIntents.add(targetedShare); 
       } 
      } 
      Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share"); 
      chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{})); 
      startActivity(chooserIntent); 
     } 
    } 
    catch(Exception e){ 
    } 
} 

回答

1

由於按照Facebook的平臺策略分享文本,我們不能使用Intent.EXTRA_TEXT預先填寫共享對話框。它通常被認爲是一個bug,但是根據一份Bug Report here以及here,Facebook明確提到這不是問題(這不是一個錯誤)。

我發現我們無法爲使用Intents上傳的照片添加標題。我們唯一的方法就是將Facebook SDK集成到您的應用程序中,然後帶有文字標題的照片將在Facebook牆上分享。

0

是其可能使用Facebook的

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
shareIntent.setType("text/plain"); 
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Content to share"); 
PackageManager pm = v.getContext().getPackageManager(); 
List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0); 
for (final ResolveInfo app : activityList) { 
    if ((app.activityInfo.name).contains("facebook")) { 
     final ActivityInfo activity = app.activityInfo; 
     final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name); 
     shareIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
     shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |    Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
     shareIntent.setComponent(name); 
     v.getContext().startActivity(shareIntent); 
     break; 
    } 
} 

隨着參考StackOverflow

+1

我想與文本共享圖像。發送圖片我應該修改上面的代碼 –

相關問題