2013-01-12 41 views
3

我是用共享圖像意圖送它不工作:(

Intent sharingIntent = new Intent(Intent.ACTION_SEND); 

Uri screenshotUri = Uri.parse("file//res/drawable/u.png"); 
  

sharingIntent.setType("image/png"); 


sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri); 


startActivity(Intent.createChooser(sharingIntent, "Share image using")); 

//我用三星真正的device.and我選擇在Facebook上共享。 //但是內容是空的不是我的圖像共享我不能共享圖像。

這是故意的動作發送不使用Facebook SDK。 你能幫助我嗎?

回答

10

你將錯誤的方式訪問可繪製文件夾使用這種方式。

Uri imageUri = Uri.parse("android.resource://your.package/drawable/fileName"); 

你應該試試這樣:

 Uri imageUri = Uri.parse("android.resource://your.package/drawable/fileName"); 
     Intent intent = new Intent(Intent.ACTION_SEND); 
     intent.setType("image/png"); 

     intent.putExtra(Intent.EXTRA_STREAM, imageUri); 
     startActivity(Intent.createChooser(intent , "Share")); 
+0

我已經使用你的代碼,但得到這麼多的錯誤.....這裏是錯誤列表http://stackoverflow.com/questions/21347750/failed-to-send-image-file-using-shareintent-from -drawable-folder-in-android – Erum

+0

爲什麼不把圖像的'Uri'放在''data''的意圖中,而不是把它放在額外的位置?我認爲這是有道理的,如果uri被放入數據,我們設置數據和類型的意圖,因爲類型是爲數據。 –

+0

它是否與所有安裝的應用程序一起工作? – Aditya

2

嘗試這個辦法:

Uri pngUri = Uri.parse("file//res/drawable/u.png"); 
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
shareIntent.setType("image/png"); 
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"YOUR TEXT HERE"); 
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,"YOUR TEXT HERE"); 
shareIntent.putExtra(android.content.Intent.EXTRA_STREAM,pngUri); 
PackageManager pm = getApplicationContext().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); 
     startActivity(shareIntent); 
      } 
     } 
    } 

它工作正常的我。我相信它也適用於你。

+0

文字不與圖像共享爲狀態.. –