나는 프로젝트를 진행 중입니다. 첫 번째 활동에서 나는 페이스 북으로 로그인하고 로깅 후에 새로운 활동을 시작합니다. 나는 페이스 북에서 로그 아웃하고 싶다. 두 번째 활동에서 페이스 북에서 로그 아웃하는 방법. PLZ 도와주세요. 이 같은다른 활동에서 Facebook 로그 아웃
0
A
답변
0
시도 뭔가 : 코드 아래
if (Session.getActiveSession() != null) {
Session.getActiveSession().closeAndClearTokenInformation();
}
Session.setActiveSession(null);
0
사용.
FBLogout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
clearApplicationData();
FBHandler.getInstance(this).facebookLogout();
}
});
public void clearApplicationData() {
File cache = getCacheDir();
File appDir = new File(cache.getParent());
if (appDir.exists()) {
String[] children = appDir.list();
for (String s : children) {
if (!s.equals("lib") && !s.equals("files")) {
deleteDir(new File(appDir, s));
Log.i("TAG",
"**************** File /data/data/APP_PACKAGE/" + s
+ " DELETED *******************");
}
}
}
}
public static boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete();
}
FBHandler.java
public class FBHandler
{
private static final String TAG ="FBHandler";
private static final String appKey = "your app key";
private static Facebook facebook = null;
private static FBHandler _instance = null;
private static Context context = null;
private static String[] permissions = null;
private FBHandler()
{
}
public static FBHandler getInstance(Context ctx)
{
if(ctx == null)
{
Log.d(TAG, "Error: Context is null, hence returning from the FBHandler");
return null;
}
context = ctx;
if(_instance == null)
{
facebook = new Facebook(appKey);
_instance = new FBHandler();
permissions = new String[]{"publish_stream","user_photos", "publish_checkins","email","publish_actions"};
}
return _instance;
}
public void doFbUserLogin(final Activity activity, final fbListner listner)
{
if(activity == null || listner == null)
{
Log.d(TAG, "Error: User Login activity/Listner is null");
return;
}
facebook.authorize(activity, permissions , new DialogListener()
{
public void onComplete(Bundle values)
{
printoCommon.showToastMsg(activity, "facebook Login is succeesfull");
listner.onSuccess();
}
public void onFacebookError(FacebookError e)
{
printoCommon.showToastMsg(activity, e.getMessage());
}
public void onError(DialogError e)
{
printoCommon.showToastMsg(activity, e.getMessage());
}
public void onCancel()
{
printoCommon.showToastMsg(activity, "Facebook Login is cancelled");
}
});
}
public void facebookLogout()
{
AsyncFacebookRunner fbAsyncRun = new AsyncFacebookRunner(facebook);
fbAsyncRun.logout(context, new AsyncFacebookRunner.RequestListener()
{
public void onMalformedURLException(MalformedURLException e, Object state)
{
printoCommon.showToastMsg((Activity) context, e.getMessage());
}
public void onIOException(IOException e, Object state)
{
printoCommon.showToastMsg((Activity) context, e.getMessage());
}
public void onFileNotFoundException(FileNotFoundException e, Object state)
{
printoCommon.showToastMsg((Activity) context, e.getMessage());
}
public void onFacebookError(FacebookError e, Object state)
{
printoCommon.showToastMsg((Activity) context, e.getMessage());
}
public void onComplete(String response, Object state)
{
printoCommon.showToastMsg((Activity)context, "You have logged out from facebook Successfully");
((Activity) context).finish();
}
});
}
}
2
이 나를 위해 일한이 일을보십시오. //
public static void logoutFromFB(Context context) {
Session session = Session.getActiveSession();
if (session != null) {
if (!session.isClosed()) {
session.closeAndClearTokenInformation();
// clear your preferences if saved
}
} else {
session = new Session(context);
Session.setActiveSession(session);
session.closeAndClearTokenInformation();
// clear your preferences if saved
}
}
0
이 FacebookSdk.sdkInitialize (getApplicationContext()를) 넣어 페이스 북에서 로그 아웃;을 작성한 다음 버튼 클릭 이벤트에 아래 코드를 작성하십시오.
LoginManager.getInstance(). logOut();
이 저에게 효과적입니다.
두 번째 활동에는 작동하지 않습니다. – Amardeepvijay
두 번째 활동에서 어떤 오류가 발생합니까? 내 이해에서 다음 활동에 대한 매개 변수로 facebook 세션을 전달해야합니다. –
fb 세션을 한 활동에서 다른 활동으로 전달하는 방법은 무엇입니까? sp와 access_token을 사용하고 있습니다. – Amardeepvijay