私は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アカウントに切り替えるにはどうすればよいですか?ありがとう。