我一直在为此而烦恼。我有它。该应用程序正在将图片发送到任何其他应用程序。我试过WhatsApp,Gmail等等。但是,现在它没有用。它能是什么?包装问题?密钥库问题?现在,当我尝试使用Gmail时,附件会显示,但它看起来像是带有名称的空白图片。这意味着没有在智能手机上找到该文件。谢谢你们。
private ShareActionProvider mShareActionProvider;
private void dragonFile(){
Bitmap dragonFront = BitmapFactory.decodeResource(getResources(),R.drawable.phoenix_art);
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
OutputStream outputStream = null;
File file = new File(extStorageDirectory, "phoenix_art.jpeg");
try{
outputStream = new FileOutputStream(file);
dragonFront.compress(Bitmap.CompressFormat.JPEG, 90, outputStream);
outputStream.flush();
outputStream.close();
} catch (Exception e){
e.printStackTrace();
}
private Intent getDefaultShareIntent(){
Intent shareIntent = new Intent();
shareIntent.setType("image/jpeg");
shareIntent.setAction(Intent.ACTION_SEND);
dragonFile();
File downloadedPic = new File(Environment.getExternalStorageDirectory().toString(), "phoenix_art.jpeg");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic));
return shareIntent;
}
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.share_menu, menu);
MenuItem item = menu.findItem(R.id.menu_item_share);
mShareActionProvider = (ShareActionProvider) item.getActionProvider();
mShareActionProvider.setShareIntent(getDefaultShareIntent());
return super.onCreateOptionsMenu(menu);
}
答案 0 :(得分:0)
您是否可以在DDMS上使用文件资源管理器来验证文件是否已实际创建?您应该能够看到该文件,然后将其从仿真器或设备中拉出并放到开发计算机上。事实上,gmail获取的文件只是一个名称但看起来是空的,这意味着getDefaultShareIntent()会看到一个文件并正确地将其附加到intent上。这意味着它可能存在于问题所在的dragonfile()中,尽管我看不到它是什么。