2011-07-21 16 views
3

AndroidでFacebookログイン機能を実装していますが、これはエミュレータとGoogle Nexusデバイスで正常に動作するようです。しかし、承認はHTC Desire Sのユーザーによってキャンセルされたようで、onComplete()は決して呼び出されません。私が見つけた唯一の違いは、HTCにはFacebookのアプリケーションが組み込まれていることです。htc desireでonCompleteメソッドが呼び出されていない

private void Login(){ 
    facebook.authorize(this,new String[] {"email"}, new Facebook.DialogListener() { 
     @Override 
     public void onComplete(Bundle values) { 
      Log.d("Auth","onCompleteCalled"); 

     } 

     @Override 
     public void onFacebookError(FacebookError error) {} 

     @Override 
     public void onError(DialogError e) {} 

     @Override 
     public void onCancel() { 
      Log.d("Auth","Cancelled"); 

     } 
    }); 

エラーメッセージがFacebookのSDKコードのこのセクションから来ている:これは私が使用していたコードである

} else if (resultCode == Activity.RESULT_CANCELED) { 

      // An Android error occured. 
      if (data != null) { 
       Log.d("Facebook-authorize", 
         "Login failed: " + data.getStringExtra("error")); 
       mAuthDialogListener.onError(
         new DialogError(
           data.getStringExtra("error"), 
           data.getIntExtra("error_code", -1), 
           data.getStringExtra("failing_url"))); 

      // User pressed the 'back' button. 
      } else { 
       Log.d("Facebook-authorize", "Login canceled by user."); //This is the error I get 
       mAuthDialogListener.onCancel(); 
      } 
+0

あなたの望みには、どのバージョンのFacebookアプリとどのAndroidバージョンがありますか?私は2.2でそれをテストしました。それはAndroid 1.3.2用のFacebookに付属しています。それは私のために働きます(ただし、Web認証にも当てはまります)。また、市場からfacebookアプリをアップデートすることができるので、ユーザーはinbuildの代わりに最新版を持っている可能性があります。 –

+0

Facebookバージョン1.5.1、Htc Androidバージョン2.3.3私のアプリは2.1バージョンで作成されます。私はまた、HTC Senseバージョン1のFacebookを持っています。私はどちらもunistallできません。 – JustCurious

+3

mFacebook.authorize(context、 新しいString [] {"user_photos"、 "friends_photos"、 "publish_stream"}、 -1、 (DialogListener)dialogListener); 新しい統合ログインダイアログボックスの代わりに従来のダイアログボックスを呼び出して、ジョブを実行しました。誰かがもっと良い解決策を持っているなら、それを聞いてうれしいです。 Shane Oliverへのクレジット – JustCurious

答えて

0

は、アプリケーションのコードの下に更新してください、それはあなたの問題を解決します。

public void loginAndPostToWall() { 
    facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, 
      new LoginDialogListener()); 
} 
関連する問題