2013-12-16 3 views
0

코드 : 내가 isSessionValid()를 확인하기 위해 노력하고페이스 북 방법 isSessionValid()는 항상 안드로이드에 false를 돌려

public void onClick(View v) { 
       if(fb.isSessionValid()) 
       { 
        Log.i("Checking isSessionValid()","Inside isSessionValid()"); 
        try { 
         fb.logout(getApplicationContext()); 
         updatebuttonimage(); 
        } catch (MalformedURLException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
       } 
       else 
       { 
        Log.i("","Jumped isSessionValid"); 
        fb.authorize(MainActivity.this,new String[]{"email"},new DialogListener() { 


         public void onFacebookError(FacebookError e) { 
          Toast.makeText(MainActivity.this,"FacebookError",Toast.LENGTH_SHORT).show(); 

         } 
..... 

, 그것은 항상 false를 반환하고 그것은 곤하는 법이 가지고 들어 가지 않는다 도에서 onCreate()에 다음 코드를 추가하지만 내 로그 캣 그렇게 아무 소용이 같은 KeyHash를 인쇄 시도 :

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "com.example.facebook_integration", 
       PackageManager.GET_SIGNATURES); 
     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
      } 
    } catch (NameNotFoundException e) { 

    } catch (NoSuchAlgorithmException e) { 

    } 

도움말이 많은 사람을 이해할 수있을 것이다. 미리 감사드립니다.

답변

1

키 해시가 문제 였고 다시 생성하여 문제가 해결되었음을 발견했습니다.

참고 : 내가 다시 처음 내 에뮬레이터에 대한 KeyHash을 생성하고 나중에 실시간 장치 작업을 시작하고 그래서 난 해시 키를 생성해야했다 원인 KeyHash 내가 믿는 각 에뮬레이터 또는 장치 분리 작동하게 만들다. isSessionValid()는 현재 실행중인 Android 장치에 대해 다른 KeyHash를 생성 한 후에 만 ​​true를 반환합니다 (실제로 문제가 발생한 것인지 확실하지 않음). 그러나 가치가있는 것을 시도해 볼 수 있습니다. 희망이 유용합니다.

관련 문제