簡體   English   中英

android facebook授權:onActivityResult未調用

[英]android facebook authorization: onActivityResult not called

我建立了一個與Facebook連接的Android應用程序,它有一個按鈕。 當我單擊按鈕時,該應用程序將調用facebook.authorize尋求許可。 從詢問權限屏幕返回后,應調用onActivityResult方法。 但就我而言,它永遠不會調用此方法。 我發現了一些類似的問題,但是所有解決方案都無法解決我的問題。 這是用戶單擊按鈕時的代碼:

facebook.authorize(this, new String[] { "read_friendlists" }, 
                new DialogListener() {
                    public void onComplete(Bundle values) {
                        Log.v("complete", "complete");
                        hideNeedLoginView();
                    }

                    public void onCancel() {
                        Log.v("cancel", "cancel");
                        hideNeedLoginView();
                    }

                    public void onFacebookError(FacebookError e) {
                        // TODO Auto-generated method stub
                        Log.v("error", "error");
                    }

                    public void onError(DialogError e) {
                        // TODO Auto-generated method stub
                        Log.v("error", "error");
                    }
                });

和onActivityResult方法:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    facebook.authorizeCallback(requestCode, resultCode, data);
}

由於未調用onActivityResult,因此所有onComplete或onCancel方法均未調用。 未定義Intent.FLAG_ACTIVITY_NO_HISTORY,所以這不是問題(在Facebook頁面上已提及)。 如果我將activityCode設置為Facebook.FORCE_DIALOG_AUTH,則當我單擊按鈕時,該應用程序無響應。 我在設備上安裝了Facebook應用。 授權后該怎么辦才能調用onActivityResult方法? 請有人幫助我,因為我在任何地方都找不到任何解決方案。

希望遵循《規范》對您有所幫助。

private static final String[] PERMISSIONS = new String[]
    { "publish_stream", "read_stream", "offline_access" };

mFacebook = new Facebook(APP_ID); 
mFacebook.authorize(this, PERMISSIONS,new LoginDialogListener());


private final class LoginDialogListener implements
            com.facebook.android.Facebook.DialogListener
    {

        /**
         * Called when the dialog has completed successfully
         */
        public void onComplete(Bundle values)
        {
            // Process onComplete
            Log.d("FB Sample App", "LoginDialogListener.onComplete()");
            // Dispatch on its own thread
            mHandler.post(new Runnable()
            {
                public void run()
                {
                    mText.setText("Facebook login successful. Press Menu...");
                }
            });
        }

        public void onFacebookError(FacebookError error)
        {
            // Process error
            Log.d("FB Sample App", "LoginDialogListener.onFacebookError()");
        }

        public void onError(DialogError error)
        {
            // Process error message
            Log.d("FB Sample App", "LoginDialogListener.onError()");
        }

        public void onCancel()
        {
            // Process cancel message
            Log.d("FB Sample App", "LoginDialogListener.onCancel()");
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM