我正在尝试使用我的应用程序在Facebook上分享照片,并启动Intent.ACTION_SEND。我的代码如下:
File file = new File(imagePath);
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType(MimeTypeUtils.getMimeType(imagePath));
sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
sharingIntent.setPackage("com.facebook.katana");
baseFragment.startActivityForResult(sharingIntent, Values.REQUEST_CODE_FACEBOOK_SHARE);
我可以顺利进行分享,但是无论我取消操作还是成功完成,结果总是返回0(零)。因为需要接收结果来记录我的分享情况,所以必须调用startActivityForResult方法。以下是处理结果代码:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
case Values.REQUEST_CODE_FACEBOOK_SHARE:
if (resultCode == Activity.RESULT_OK){
//Save a new record
}
else {
//Do nothing
}
break;
}
应用程序从未进入if子句,因为结果代码始终为0。我不知道发生了什么。我认为实现的机制是预期的。有什么建议吗?
ACTION_SEND
处理活动调用setResult()
来给您一个结果代码,并且没有要求您获得的结果值一定与您认为表示“取消”与“执行”的任何内容相匹配。 - CommonsWare