5

私のアプリには、FB プロセス
への接続を行う FB AuthButton があります。古いバージョンの 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.

画面には、ブラウザに次のスクリーンショットが表示されます。

FBwtf?!

これを修正する方法やアプリに戻る方法について何か考えはありますか?

4

1 に答える 1

5

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;
}

これを自分でテストしたい場合は、Facebook アプリの以前のバージョンをここで見つけることができます: http://www.androiddrawer.com/2274/download-facebook-for-android-1-9-7-app-apk/# .Uctn6Zwaux4

于 2013-06-26T23:47:24.483 に答える