我的应用允许您将图库视图中的照片分享给其他服务,例如Facebook。我正在启动一个对话框,允许用户选择他们想要的服务。代码如下所示:
public void sharePhoto(String fileName)
{
logger.debug("User selected to share photo {}", fileName);
final String extension = FilenameParser.extension(fileName);
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase());
if(mimeType == null)
{
mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toUpperCase());
}
if(mimeType == null)
{
logger.warn("Unable to share file {} because it's mime type could not be determined by the system.", fileName);
Toast.makeText(MainActivity.this, String.format("Cannot share file %s because of an unknown file type.", selectedFile.getFileName()), Toast.LENGTH_SHORT).show();
}
else
{
logger.debug("Launching Share Intent for file {}", fileName);
Intent share = new Intent(Intent.ACTION_SEND);
share.setType(mimeType);
share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + fileName));
startActivity(Intent.createChooser(share, "Share"));
}
}
代码似乎工作正常。如果我选择Flickr,Dropbox,Gmail或HTC Facebook应用程序等服务,一切都很完美。如果我选择官方Facebook应用程序,并尝试通过它上传照片,照片将从SD卡中删除!它是否会被删除(或移动?),无论您是通过完成上传过程还是取消它。
我已经执行了十几次代码,确保在这种情况下我的删除照片代码无法正常运行(如果用户想要这样做,则是另一个菜单项)。我的删除代码中有很多跟踪,并且代码没有执行。
如果这不是一个已知问题(或者我发布FB的方式有问题),有人知道如何向他们提交错误报告吗?!?
谢谢, 凯文