2012-01-11 4 views
1

У меня вопрос о методе SingleSignOn() для Android Facebook.Android-приложение для Android Android для Android?

В приведенном ниже коде используется пакет "com.facebook.katana" и класс "com.facebook.katana.proxyAuth".

Проблема в том, что у меня нет такого пакета и класса при установке Eclipse, но похоже, что деятельность, которая использует эти пакеты и класс, отлично работает, даже если у меня ее нет. Зачем?

Линия

activity.startActivityForResult(intent, activityCode); 

не бросает ActivityNotFoundException ошибки, даже если я не имею право пакет?

Код здесь:

private boolean startSingleSignOn(Activity activity, String applicationId, 
            String[] permissions, int activityCode) { 
    boolean didSucceed = true;<br> 
    Intent intent = new Intent(); 

    intent.setClassName("com.facebook.katana", 
      "com.facebook.katana.ProxyAuth"); 
    intent.putExtra("client_id", applicationId); 
    if (permissions.length > 0) { 
     intent.putExtra("scope", TextUtils.join(",", permissions)); 
    } 

    // Verify that the application whose package name is 
    // com.facebook.katana.ProxyAuth has the expected 
    // Facebook app signature. 
    if (!validateAppSignatureForIntent(activity, intent)) { 
     Log.d("Facebook - startSignleSignOn", "AppSign Validation Failed, return didsucced false"); 
     return false; 
    } 

    mAuthActivity = activity; 
    mAuthPermissions = permissions; 
    mAuthActivityCode = activityCode; 
    try { 
     activity.startActivityForResult(intent, activityCode); 
    } catch (ActivityNotFoundException e) { 
     Log.d("Facebok - startSingleSignOn", "Activity not found exception, return didsucced false"); 
     didSucceed = false; 
    } 

    return didSucceed; 
} 

ответ

3

Ничего. Я узнал, что код автоматически использует авторизацию Facebook в Интернете, когда они не могут найти пакет «com.facebook.katana» и класс «com.facebook.katana.ProxyAuth».

Я считаю, что эти пакеты и классы включены в приложение Facebook. Итак, если у меня есть официальное приложение Facebook, которое включает в себя «com.facebook.katana.ProxyAuth», мое приложение использует метод SigleSignOn, который позволяет пропустить аутентификацию Facebook моего приложения, если пользователь зарегистрировался в официальном приложении Facebook. И если у меня нет оффициального приложения Facebook, приложение использует традиционную проверку подлинности в Интернете.

+0

Все еще работает для вас? Когда он открывает диалоговое окно приложения Facebook, он говорит: «Требуется параметр app_id». – dannyroa

Смежные вопросы