1

何時間もの間、Facebook接続が正しく機能しない理由を理解しようとしています。常に2回クリックする必要があります。最初にクリックすると、facbeookダイアログが開いているのに、コールバックが呼び出されていないため、Login-Activityが「再開」していることがわかります。

public void onClick_fbIcon(View v) {
    if(!buttonsEnabled)
        return;

    buttonsEnabled = false;
    tryFacebookConnect();
}

@SuppressWarnings("deprecation")
private void tryFacebookConnect() {
    Log.d("debug", "start fbc");
    doingFacebooklogin = true;
    facebook.authorize(this, new DialogListener() {
        public void onComplete(Bundle values) {
            end();
            toast("Complete");
            Log.d("debug", "#0");   
            // .. continue with main code
        }

        public void onFacebookError(FacebookError error) {
            end();
            Log.d("debug", "#1");           
        }

        public void onError(DialogError e) {
            end();
            Log.d("debug", "#2");
        } 

        public void onCancel() {
            end();
            Log.d("debug", "#3");
        }

        private void end() {
            Log.d("debug", "fbc complete");
            doingFacebooklogin = false;
        }
    });
}

最初のクリックでは「startfbc」しか表示されませんが、その後は何も表示されないため、コールバックメソッドは呼び出されないと思います。

facebook-connectが初めて動作しないときに、「onResumeが呼び出される」ことがわかりました。次回onActivityResultが呼び出されたとき。

@SuppressWarnings("deprecation")
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d("debug", "Main: onActivityResult");
    super.onActivityResult(requestCode, resultCode, data);

    facebook.authorizeCallback(requestCode, resultCode, data);
}

私のログインアクティビティは、ログインが必要かどうかを指定するメインアクティビティによって開始されるインテントです。

    Intent intent = new Intent(this, Login.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    startActivity(intent);

次のエラーが表示されることがあります。

11-22 10:23:39.684: D/Facebook-publish(7317): Can NOT get FbInjector instance! Probably because this method was called in ContentProvider's onCreate.
4

2 に答える 2

0

このチュートリアルをご覧ください。私はこれに従うだけで、すべてが完全に機能するようになります。

それがあなたにも役立つことを願っています。

http://www.youtube.com/watch?v=xndi6s9Tn_U

于 2012-11-21T08:46:06.237 に答える
0

理由はわかりませんが、問題は明らかにfacebook-sdkの一部です。デバイスにfacebook-appがインストールされていない場合、この問題は発生しないことがわかりました。だから私は次のようにコードを変更しました:

facebook.authorize(a, new String[] { }, **Facebook.FORCE_DIALOG_AUTH**, new DialogListener() {
...
于 2012-11-27T08:07:31.120 に答える