2012-06-25 44 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

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