0

我正在尝试通过 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;

我得到的当然是

文件存在

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

4

1 回答 1

0

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

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

我应该把它作为额外的 Intent

shareIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);

案件破案!

于 2013-06-16T02:51:39.453 回答