Facebook Intent.ACTION_SEND始终返回0,因为resultCode

问题描述:

我试图使用我的应用程序在Facebook上共享照片并启动Intent.ACTION_SEND。我的代码如下:Facebook Intent.ACTION_SEND始终返回0,因为resultCode

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,因为我需要接收一个Result来保存有关我的份额的记录。我的代码来处理结果代码如下:

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。我不知道发生了什么。我认为实施的机制是预期的。任何建议?

我要调用startActivityForResult,因为我需要得到一个结果,以保持创纪录的约我的股票

ACTION_SEND的目的不是要返回结果,如the documentation(“输出指出:没有“)。很少,如果有的话,应用程序将返回一个结果,那些技术上不应该。

+0

那么@CommonsWare,不可能知道操作的结果吗? –

+0

@TiagoPereira:对。 – CommonsWare

+0

我尝试了3种不同的应用程序(dropbox,google +和twitter)的相同代码,并且它们都返回了正确的resultCode(如果我取消操作,则返回0,如果我执行该操作,则返回1)。我能从中得出什么结论? –