1. layout file Add Facebook Loginburtton
1 <Com.facebook.widget.LoginButton2 Android:id= "@+id/authbutton"3 Android:layout_width= "Fill_parent"4 Android:layout_height= "Wrap_content"5 android:layout_gravity= "Center_horizontal"6 Android:layout_marginleft= "45DP"7 Android:layout_marginright= "45DP"8 Android:layout_margintop= "10DP"9 Android:background= "#FF3B5790" />
2, create the Mainfragment class, and inherit the Fragment class,
Override the Oncreateview () method; set permissions through Loginbutton setreadpermissions () More permissions to access http://developers.facebook.com/docs/ reference/login/#permissions
Override Onsessionstatechange () method, function: Call this method when the session state changes, state.isopened () is true, it proves the login success
PrivateUilifecyclehelper Uihelper;PrivateLoginbutton Authbutton; @Override Public voidonCreate (Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Uihelper=NewUilifecyclehelper (Getactivity (), callback); Uihelper.oncreate (savedinstancestate); Authbutton=(Loginbutton) View.findviewbyid (R.id.authbutton); Authbutton.setfragment ( This); Authbutton.setloginbehavior (Sessionloginbehavior.suppress_sso); Authbutton.setreadpermissions (Arrays.aslist ("Email", "user_likes", "User_status")); } @Override Public voidOnresume () {Super. Onresume (); Session Session=session.getactivesession (); if(Session! =NULL&& (session.isopened () | |session.isclosed ())) {Onsessionstatechange (Session, Session.getstate (),NULL); } uihelper.onresume (); } @Override Public voidOnactivityresult (intRequestcode,intResultCode, Intent data) { Super. Onactivityresult (Requestcode, ResultCode, data); Uihelper.onactivityresult (Requestcode, ResultCode, data); } @Override Public voidOnPause () {Super. OnPause (); Uihelper.onpause (); } @Override Public voidOnDestroy () {Super. OnDestroy (); Uihelper.ondestroy (); } @Override Public voidonsaveinstancestate (Bundle outstate) {Super. Onsaveinstancestate (outstate); Uihelper.onsaveinstancestate (outstate); } PrivateSession.statuscallback callback =NewSession.statuscallback () {@Override Public voidCall (Session session, sessionstate State, Exception Exception) {Onsessionstatechange (session, stat E, exception); } }; Private voidOnsessionstatechange (Session session, sessionstate State, Exception Exception) {if(state.isopened ()) {loginbyfacebookfinished (session); } Else if(state.isclosed ()) {}}/**
* Successful Landing
**/ Private voidLoginbyfacebookfinished (FinalSession session) {Request Request= Request.newmerequest (Session,NewGraphusercallback () {@Override Public voidoncompleted (graphuser user, Response Response) {Dismissloadingdlg (); Try{accountinfo AccountInfo=null; AccountInfo=NewAccountInfo (); ACCOUNTINFO.SETVIP (false); Accountinfo.sethaslogin (true); Accountinfo.settoken (Session.getaccesstoken ()); User Informationif(User! =NULL) {accountinfo.setshowusername (User.getname ()); Accountinfo.setpassword (User.getlink ()); Accountinfo.setlogintype (Logintype.facebook); Accountinfo.setemail (User.getproperty ("Email") + ""); Accountinfo.setloginname (User.getproperty ("Name") + ""); } } Catch(Exception e) {//TODO auto-generated Catch blockE.printstacktrace (); } } }); Request.executeasync (); }
3. Log Out
/*** Logout from Facebook*/ Public voidCallfacebooklogout (Context context) {Session session=session.getactivesession (); if(Session! =NULL) { if(!session.isclosed ()) {session.closeandcleartokeninformation (); //Clear your preferences if saved } } Else{Session=NewSession (context); Session.setactivesession (session); Session.closeandcleartokeninformation (); //Clear your preferences if saved } }
Android--facebook Login