Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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/8.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/8/grails/5.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 SDK 3.0重定向到浏览器并被卡住_Android_Facebook_Android Facebook - Fatal编程技术网

Android 带有旧Facebook应用程序版本的Facebook SDK 3.0重定向到浏览器并被卡住

Android 带有旧Facebook应用程序版本的Facebook SDK 3.0重定向到浏览器并被卡住,android,facebook,android-facebook,Android,Facebook,Android Facebook,我的应用程序中有一个FB AuthButton,它正在连接FB进程我有一个设备正在运行旧版本的FB应用程序(版本1.8.3-1.8.4) 当我单击登录按钮时,该过程不会启动本机应用程序,而是调用浏览器来完成该过程。在日志中,我看到这些日志: 06-16 12:26:00.709: E/ActivityThread(21597): Failed to find provider info for com.facebook.katana.provider.AttributionIdProvider

我的应用程序中有一个FB AuthButton,它正在连接FB进程
我有一个设备正在运行旧版本的FB应用程序(版本1.8.3-1.8.4)

当我单击登录按钮时,该过程不会启动本机应用程序,而是调用浏览器来完成该过程。
在日志中,我看到这些日志:

06-16 12:26:00.709: E/ActivityThread(21597): Failed to find provider info for com.facebook.katana.provider.AttributionIdProvider
06-16 12:26:03.321: E/Tab(21678): onReceivedError -10 fbconnect://success#access_token=MY_TOKEN&expires_in=5170432 The protocol is not supported.
在屏幕上,浏览器显示以下屏幕截图:


有没有想过如何修复这个问题,或者直接返回到我的应用程序?

我们发现Facebook版本1.9.8+可以正常工作,即版本代码40477+


在使用弃用的Facebook.java类时,我们修改了validateAppSignatureForPackage()。它现在似乎适用于所有版本的facebook应用程序

private boolean validateAppSignatureForPackage(Context context, String packageName) 
{
    PackageInfo packageInfo;
    try 
    {
        packageInfo = context.getPackageManager().getPackageInfo(packageName, 
                      PackageManager.GET_SIGNATURES);
        if(packageInfo.versionCode<40477)
        {
            Log.i("validateAppSignatureForPackage", 
              "Your facebook app version is prior to 1.9.8. Update your facebook app"); 
            return false;
        }
    } 
    catch (NameNotFoundException e) 
    {
        Log.i("validateAppSignatureForPackage", e.getMessage());
        return false;
    }
    catch(Exception e)
    {
        Log.i("validateAppSignatureForPackage", e.getMessage());
        return false;
    }

    for (Signature signature : packageInfo.signatures) {
        if (signature.toCharsString().equals(FB_APP_SIGNATURE)) {
            return true;
        }
    }
    return false;
}

private boolean validateAppSignatureForPackage(上下文,字符串packageName)
{
PackageInfo PackageInfo;
尝试
{
packageInfo=context.getPackageManager().getPackageInfo(packageName,
PackageManager.GET_签名);

如果(packageInfo.versionCode)在本文中的选项是
WebDialog
实现它,而不是FB auth按钮。我知道,但我不想强迫我的用户进入web对话框,除非没有其他方法。因为在这种情况下,用户安装了应用程序,(只是没有更新),我无法找到他的Facebook应用程序的版本,也无法控制登录过程,我如何解决这个问题?SDK不应该转到Android浏览器。在重定向到fbconnect://url之前,浏览器中的url是什么?在注意到您拥有的版本与SDK不兼容后,您会怎么做?validateAppSignatureForPackage()返回一个布尔值,表示是否安装了facebook应用程序的有效版本。通过简单地返回false,sdk不会尝试使用facebook应用程序,而是使用FBDialog.java。这就是我们所做的修复。我希望这能回答您的问题。