0

我正在关注Facebook Android SDK 教程,并且在我的应用程序中拥有通往此步骤的所有代码。我启动应用程序(在我的手机上测试它,但在模拟器中也是如此),然后这个屏幕出现了:

在此处输入图像描述

好,很好!

但是,一旦它完成加载,而不是像这里给出的示例那样出现任何类型的登录屏幕:

在此处输入图像描述

我只是想出这个:

在此处输入图像描述

代码:

package com.greatapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import com.facebook.android.*;
import com.facebook.android.Facebook.*;

public class MyGreatActivity extends Activity {

Facebook facebook = new Facebook("MY_APP_ID");

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    facebook.authorize(this, new DialogListener() {
        @Override
        public void onComplete(Bundle values) {}

        @Override
        public void onFacebookError(FacebookError error) {}

        @Override
        public void onError(DialogError e) {}

        @Override
        public void onCancel() {}
    });
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

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

好的,我删除了项目并重新开始。以前的这个屏幕正在做一些事情,但不断地一遍又一遍地重新加载这个加载屏幕。几乎就像它为 1000 种不同的东西联系 Facebook 的服务器,每一种都有一个加载屏幕。我不知道该怎么办。Logcat 中没有错误。

在此处输入图像描述

4

2 回答 2

0

这个对我有用。logcat中是否有任何错误消息?你使用互联网许可吗?检查这些东西。

或者你已经完成了

或在您的代码中添加一些日志,例如:

        facebook.authorize(this, new DialogListener() {
        @Override
        public void onComplete(Bundle values) {
            Log.d("onComplete",""+values);
        }

        @Override
        public void onFacebookError(FacebookError error) {
            Log.d("onFacebookError",""+error);
        }

        @Override
        public void onError(DialogError e) {
            Log.d("onError",""+e);
        }

        @Override
        public void onCancel() {
            Log.d("onCancel","cancel");
        }
    });

并在您的 logcat 中查看结果

于 2012-03-19T18:52:37.707 回答
0

只需像这样修改您的代码:

import com.facebook.android.*;
import com.facebook.android.Facebook.*;

public class MyGreatActivity extends Activity {
public static final String[] PERMISSIONS = new String[] {"email", "publish_checkins", "publish_stream","offline_access"}; 
Facebook facebook = new Facebook("MY_APP_ID");


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    facebook.authorize(this,PERMISSIONS,Facebook.FORCE_DIALOG_AUTH, new DialogListener() {
        @Override
        public void onComplete(Bundle values) {}

        @Override
        public void onFacebookError(FacebookError error) {}

        @Override
        public void onError(DialogError e) {}

        @Override
        public void onCancel() {}
    });
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

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

Facebook.FORCE_DIALOG_AUTH ---> 将强制登录 facebook

在使用新用户登录之前,您还需要调用facebook.logout(context)方法来注销当前方法。

使用此方法:

public void Logout() throws MalformedURLException, IOException {
        facebook.logout(mContext);
    }
于 2012-11-24T07:17:15.197 回答