Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果安装了Facebook应用程序,则Facebook会话.isOpened()始终为false_Android_Facebook - Fatal编程技术网

Android 如果安装了Facebook应用程序,则Facebook会话.isOpened()始终为false

Android 如果安装了Facebook应用程序,则Facebook会话.isOpened()始终为false,android,facebook,Android,Facebook,我正在尝试通过以下操作登录Facebook。但是,如果我的手机上也安装了Facebook应用程序,则session.isOpened()调用始终返回false。如果没有安装在我的手机上,一切正常。我的代码如下: public static void loginToFacebook(final Activity activity) { Log.d("Hello", Global.debug + " Login to Facebook"); Session.openActiveSessi

我正在尝试通过以下操作登录Facebook。但是,如果我的手机上也安装了Facebook应用程序,则session.isOpened()调用始终返回false。如果没有安装在我的手机上,一切正常。我的代码如下:

public static void loginToFacebook(final Activity activity) {
  Log.d("Hello", Global.debug + " Login to Facebook");
    Session.openActiveSession(activity, true, new Session.StatusCallback() {
      // callback when session changes state
      @Override
      public void call(Session session, SessionState state, Exception exception) {
        Log.d("Session Changed", Global.debug);
        if (session.isOpened()) {
          Log.d("Session Is Opened", Global.debug);
          Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
            // callback after Graph API response with user object
            @Override
            public void onCompleted(GraphUser user, Response response) {
              Log.d("Request Completed", Global.debug);
              if (user != null) {
                Log.d("Hello ", Global.debug + " " + user.getName() + "!");
              }
            }
          });
        }
      }
    });
  }
会话更改会打印到日志中,但会话永远不会打开,除非我删除Facebook应用程序,然后它会打印与我的Facebook帐户关联的名称,就像我登录后应该打印的那样。我环顾四周,发现其他具有相同问题的人使用了错误的密钥哈希,并通过使用以下方法找到了正确的密钥哈希:

try {
  PackageInfo info = getPackageManager().getPackageInfo("com.facebook.login", PackageManager.GET_SIGNATURES);
  for (Signature signature : info.signatures) {
    MessageDigest md = MessageDigest.getInstance("SHA");
    md.update(signature.toByteArray());
    Log.d("KeyHash:", Global.debug + " " + Base64.encodeToString(md.digest(), Base64.DEFAULT));
  }
} catch (NameNotFoundException e) {
  Log.d("Name Not Found", Global.debug);
} catch (NoSuchAlgorithmException e) {
  Log.d("No Such Algorithm", Global.debug);
}
但它打印的是我已经在使用的同一个密钥散列。有什么我做错了吗?任何帮助都将不胜感激,谢谢