Androidで非アクティビティクラスのFacebookログインを行うことはできますか?Android Facebookでログインしていないアクティビティクラス
私はソーシャルメディアログインなどのために異なる「設定クラス」を読み込むアクティビティを持っています。 Facebookの1つです。これは私のFacebook-Settings.xmlを読み込む非アクティビティクラスです。いくつかのスイッチボタンなどがあります。スイッチボタンのステータスが保存されています。 Facebookのログインボタンも統合しました。しかし、それはonSuccessが呼び出されていないようです
ここで何が間違っているのですか?非アクティビティクラスでFacebookにログインすることも可能ですか?
public class FacebookService extends SensorService {
public FacebookService() {
super("fb");
}
//add Sensorname UI
@Override
public void load() {
name.setText("FACEBOOOK");
}
//load settings xml-file if settings button is clicked
@Override
public int getSettingsViewId() {
FacebookSdk.sdkInitialize(context.getApplicationContext());
callbackManager = CallbackManager.Factory.create();
}
return R.layout.fb_settings;
}
//Saves Checked Buttons from Facebook Seetings
@Override
public void save(View settings) {
TextView text = (TextView) settings.findViewById(R.id.FBText);
switchPosts = (Switch) settings.findViewById(R.id.switchPosts);
}
//Creates View for Facebook Settings
//loads Check Buttons state from Shared preferences and updates view
@Override
public void createSettings(View settings) {
LoginButton loginButton = (LoginButton) settings.findViewById(R.id.login_button);
loginButton.setReadPermissions("public_profile, email, user_about_me, user_posts, user_friends, user_events, user_photos, user_likes, user_relationships, user_birthday");
getLoginDetails(loginButton);
}
protected void getLoginDetails(LoginButton login_button){
// Callback registration
login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult login_result) {
Log.d("app", "FB Login");
accessToken = login_result.getAccessToken();
if(accessToken != null){
//statusFacebook.setText("Login Erfolgreich");
Log.d("app", "Login success");
}
else{
//statusFacebook.setText("Login fehlgeschlagen");
Log.d("app", "Login no success");
}
}
@Override
public void onCancel() {
// code for cancellation
}
@Override
public void onError(FacebookException exception) {
// code to handle error
}
});
}
private void setSwitches() {
//DO Something
}
}
私はあなたがあなたのActivity
やFragment
のonActivityResult
方法へのログインの結果を受け、私の主な活動
protected void onCreate(Bundle savedInstanceState) {
....
ServiceManager.getInstance().setContext(this);
ServiceManager.getInstance().setRoot((ViewGroup)findViewById(R.id.service_view));
ServiceManager.getInstance().add(new FacebookService());
ServiceManager.getInstance().add(new TwitterService());
}
OK感謝を追加する必要があり、このような何か(この
Fragment
の方法)を必要としています。私は本当にAndroidプログラミングの新しいです。少なくともこのコードを実装する必要がありますか?私は非アクティビティクラスでログインを実装したいと思います。私は自分のアクティビティでonActivityResult()を実装し、それを非アクティビティクラスに渡す必要がありますか? – user2348157
正確です。またはFacebookServiceがその中で参照されている場合は、フラグメント内にあります。 onActivityResultはActivityおよびFragmentクラスで利用できますが、少し異なります – firegloves
あなたは解決しましたか? – firegloves