2012-06-25 64 views
0
private void createShareIntent() { 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    String file = "/mnt/sdcard/9gag_4155804.jpg"; 
    File f = new File(file); 
    if (!f.exists()) { 
     Toast.makeText(getApplicationContext(), "File doesnt exists", Toast.LENGTH_SHORT).show(); 
     return; 
    } else { 
     Toast.makeText(getApplicationContext(), "We can go on!!!", Toast.LENGTH_SHORT).show(); 
    } 
    Uri uri = Uri.fromFile(f); 
    shareIntent.setType("image/jpeg"); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
    startActivity(Intent.createChooser(shareIntent, "How do you want to share?")); 
} 

該文件存在,我沒有收到吐司。 當調用這個方法時,很多意圖都被聆聽。 (Google Drive,Mail,Plus等) 我點擊Google Plus,它告訴我「並非所有的媒體文件都可以附加到帖子中」。 使用Google雲端硬盤或任何其他服務時會發生同樣的情況。 我只是不能分享任何圖像...分享意圖不適用於圖像?

任何想法?

//編輯 我得到烤麪包「我們可以繼續!!!」

+0

嘗試把吐司在'else'和檢查... –

+0

添加和我得到的敬酒說:「我們可以繼續」 –

+1

使用'Environment.getExternalStorageDirectory()',並檢查你,你給路徑 –

回答

-3

您是否在清單中定義了意圖過濾器?如果不添加:

<intent-filter> 
      <action android:name="android.intent.action.SEND" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:mimeType-"image/*"/> 
</intent-filter> 

您需要通知android系統,這是一個隱含的意圖。

+0

意圖過濾器用於告訴Android系統我的應用程序可以接收共享圖像,或? –

+0

是的,你需要在你的清單中聲明這個,這樣Android系統會在列表中列出你的應用程序..當你點擊分享按鈕 – user1351659

+0

我不想接收分享。我想分享一些圖像到其他應用 –