2014-03-12 149 views
3

我試圖使用我的應用程序在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。我不知道發生了什麼。我認爲實施的機制是預期的。任何建議?

回答

6

我要調用startActivityForResult,因爲我需要得到一個結果,以保持創紀錄的約我的股票

ACTION_SEND的目的不是要返回結果,如the documentation(「輸出指出:沒有「)。很少,如果有的話,應用程序將返回一個結果,那些技術上不應該。

+0

那麼@CommonsWare,不可能知道操作的結果嗎? –

+0

@TiagoPereira:對。 – CommonsWare

+0

我嘗試了3種不同的應用程序(dropbox,google +和twitter)的相同代碼,並且它們都返回了正確的resultCode(如果我取消操作,則返回0,如果我執行該操作,則返回1)。我能從中得出什麼結論? –