0

我是android编程的初学者。我正在尝试使用 facebook SSO,因此我按照 facebook 开发人员的说明编写了一个简单的测试代码:

public class MainActivity extends Activity {
private Facebook facebook = new Facebook("xxxxxxxxxxxxxxx");
/** Called when the activity is first created. */   

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new OnClickListener(){
        //@Override
        public void onClick(View v) {
            facebook.authorize( MainActivity.this, new DialogListener(){
                @Override
                public void onComplete(Bundle values) {
                // TODO Auto-generated method stub
                }
                @Override
                public void onFacebookError(FacebookError e) {
                // TODO Auto-generated method stub
                }
                @Override
                public void onError(DialogError e) {
                // TODO Auto-generated method stub
                }
                @Override
                public void onCancel() {
                // TODO Auto-generated method stub
                }
             });
        }
    }); 

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}

我第一次完成编码时它工作。弹出对话框,我可以输入我的电子邮件和密码。但是,第一次之后同样不能工作。我检查了 LogCat 并发现了错误:

10-17 17:10:07.227: E/ActivityThread(638): Failed to find provider info for       
com.facebook.katana.provider.AttributionIdProvider

我已经尝试了很多次,我看到的是对话框弹出但立即关闭。我已经检查了解决方案,并且确定密钥哈希匹配。谁能告诉我为什么?非常感谢。

对不起我的愚蠢问题。我发现在 LogCat 中有一个“D/Facebook-authorize(638): Login Success! access_token=...... expires=.....”,所以我建议代码字?但是为什么即使我关闭我的模拟器,我也不需要再次登录,重新启动我的电脑?如果我愿意,如何切换到其他 Facebook 帐户?多谢。

4

1 回答 1

1

我认为登录是成功的。但这里有一些建议。如果您想查看对话框页面并想重新输入用户名和密码,请先尝试清除您的应用程序的缓存,然后再再次运行它。

于 2012-10-19T14:21:40.217 回答