Facebook的SDK 3.0与旧的Facebook应用程序的版本重定向到浏览器和卡 [英] Facebook SDK 3.0 with old Facebook app version redirects to browser and gets stuck
问题描述
我在我的应用程序中的FB AuthButton在执行该连接FB过程
我有正在运行旧版本的应用程序的FB(版本1.8.3 - 1.8.4)的设备。
I have in my app a FB AuthButton that is doing the connection to FB process
I have a device that is running an old version of the FB app (version 1.8.3 - 1.8.4).
当我点击登录按钮,过程中不启动本机应用程序,但调用浏览器来完成该过程
在日志中,我看到这些日志:
when I click on the login button, the process doesn't start the native app, but calls the browser to finish the process.
In the logs, I see those logs:
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.
和在屏幕上,浏览器显示这个截图:
and on the screen, the browser shows this screenshot:
在如何解决这一问题或ridirect回我的应用程序?什么想法
any thoughts on how to fix this or ridirect back to my app?
推荐答案
我们已经发现,Facebook的版本1.9.8+的作品,这是版本code版本code 40477 +。
We've found that Facebook version 1.9.8+ works, which is version code version code 40477+.
由于我们使用pcated Facebook.java类去$ P $,我们修改validateAppSignatureForPackage()。它似乎适用于所有版本,现在的Facebook应用程序的。
As we are using the deprecated Facebook.java class, we modified validateAppSignatureForPackage(). It seems to work for all versions of the facebook app now.
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;
}
如果你想测试这个自己,你可以在这里找到Facebook应用程序的previous版本:<一href="http://www.androiddrawer.com/2274/download-facebook-for-android-1-9-7-app-apk/#.Uctn6Zwaux4">http://www.androiddrawer.com/2274/download-facebook-for-android-1-9-7-app-apk/#.Uctn6Zwaux4
If you want to test this yourself, you can find previous versions of the facebook app here: http://www.androiddrawer.com/2274/download-facebook-for-android-1-9-7-app-apk/#.Uctn6Zwaux4
这篇关于Facebook的SDK 3.0与旧的Facebook应用程序的版本重定向到浏览器和卡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!