我是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 帐户?多谢。