通过actionProvider共享图像:出了什么问题?

时间:2013-06-15 18:32:29

标签: android shareactionprovider

我正在尝试通过shareActionProvider共享图像,但我尝试与之共享文件的每个应用程序似乎都没有处理文件:所选应用程序将打开,但之后我看不到任何图像(即Skype打开自己,但根本不发送任何文件)

以下是我在onCreateOptionsMenu中的内容:

getSupportMenuInflater().inflate(R.menu.menu_statistics, menu);

ShareActionProvider mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.actionbar_share_chart).getActionProvider();

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");

String root= Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/charts");
String fname = "chart.png";
File file = new File(myDir, fname);
URI uri = file.toURI();
shareIntent.putExtra(Intent.EXTRA_STREAM, uri.toString());
mShareActionProvider.setShareIntent(shareIntent);

if(file.exists())
    Log.d("debugCheck", "the file exists");

return true;

我获得的当然是

  

文件存在

在我的日志中。那么,为什么呢?为什么应用程序将打开但不会附加图像?

1 个答案:

答案 0 :(得分:0)

好的,我发现了错误。我应该创建一个Uri对象,而不是使用该URI类:

Uri screenshotUri = Uri.parse("file:///storage/sdcard0/charts/chart.png");

我应该把它作为额外的意图传递给意图

shareIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);

案件解决了!