1. Introduce Facebook project Lib and declare com.facebook.loginactivity,facebook_app_id in manifest
<activity android:name= "com.facebook.LoginActivity" android:label= "@string/app_name" android: Theme= "@android: Style/theme.translucent.notitlebar"/><meta-data android:name= " Com.facebook.sdk.ApplicationId " android:value=" @string/facebook_app_id "/>
2. Call Mode:
1). Initialize Facebooklogin, set callback
Private Facebooklogin Facebooklogin;
Facebooklogin = new Facebooklogin (this); Facebooklogin.setlogincallback (New Facebooklogin.logincallback () { @Override public void Onprelogin () { showloadingdlg (); } @Override public void onloginsuccess (graphuser user) { dismissloadingdlg (); Toast.maketext (Getapplicationcontext (), user.getname () + "========", Toast.length_long). Show (); @Override public void OnError () { dismissloadingdlg (); } });
2). Overriding the Onactivityresult method
@Override public void Onactivityresult (int requestcode, int resultcode, Intent data) { Super.onactivityresult (Requestcode, ResultCode, data); Facebooklogin.onactivityresult (Requestcode, ResultCode, data); }
3). Call the Facebooklogin.login () method and call the Onloginsuccess method to return the user information after the login is successful.
Facebooklogin.login ();
3. Tool Class Facebooklogin.java code:
Import Android.app.activity;import Android.content.context;import Android.content.intent;import Com.facebook.request;import Com.facebook.response;import Com.facebook.session;import com.facebook.SessionState; Import Com.facebook.request.graphusercallback;import Com.facebook.model.graphuser;public class FacebookLogin{ private activity activity; Public Facebooklogin (activity activity) {this.activity = activity; } private Logincallback Logincallback; public void Onactivityresult (int requestcode, int resultcode, Intent data) {Onactivityresult (activity, REQUESTC Ode, ResultCode, data); }/** * Login */public void login () {login (activity); }/** * Onactivityresult * @param context * @param requestcode * @param resultcode * @param data */private void Onactivityresult (context context, int requestcode, int resultcode, Intent data) {if (conte XT instanceof Activity) {SessIon.getactivesession (). Onactivityresult (Activity) context, Requestcode, ResultCode, data); }}/** * Login * @param context */private void Login (context context) {Session.openactiv Esession (Activity) context, True, new Session.statuscallback () {//callback when Session changes state @Override public void Call (Session session, sessionstate State, Exception Exception) { if (session.isopened ()) {GetUserInfo (session); } } }); if (logincallback! = null) {Logincallback.onprelogin (); }} private void GetUserInfo (final session session) {Request Request = Request.newmerequest (Session, new Graphusercallback () {@Override public void oncompleted (graphuser user, Response Response) {try { if (logincallback! = null) {if (user! = null) { logincallback.onloginsuccess (user); } else {logincallback.onerror (); }}} catch (Exception e) {e. Printstacktrace (); Logincallback.onerror (); } } }); Request.executeasync (); }/** * Logout from Facebook */public void Logout () {Session session = Session.getactivesession ( ); if (session! = NULL) {if (!session.isclosed ()) {Session.closeandcleartokenin Formation (); }} else {session = new session (activity); Session.setactivesession (session); Session. Closeandcleartokeninformation (); }} public void Setlogincallback (Logincallback logincallback) {this.logincallback = Logincallback; } public interface Logincallback {void Onprelogin (); void Onloginsuccess (Graphuser user); void OnError (); }}
Android--facebook Login without Loginbutton