2013-07-16 3 views
2

Как ранее использовалось логин для facebook для фрагмента, и это отлично работает, поэтому с изменением потребности теперь войдите в facebook с активностью, поэтому у нас есть обычная кнопка Android и по щелчку этого диалогового окна входа в систему будет отображаться для взаимодействия с пользователем для указания имени пользователя и пароля, а также при успешном входе в систему с просьбой о выполнении пользователем. Каждый код выполняется, но если щелкнуть по диалоговому окну не отображается, но onsessionstate изменит журнал, отображающий вывод какfacebook sdk 3.0 login with android activity class

first показать ОТКРЫТИЕ than show LOGIN FAILED ЗАКРЫТЫЙ

весь шаг требуется для входа в facebook, упомянутого в facebook сайт разработки приложений, и все требуемые сведения о классе и метаданных также указаны в файле манифеста andriod.

здесь класс активности для входа

public class ResgistrationApp extends Activity { 

    EditText username,password,name,nickname,email,phone; 

    Button Registertauky,fb_connect; 

    com.facebook.Session fbSession; 
    ImageView user_image; 
    private UiLifecycleHelper uihelper; 

    private Session.StatusCallback sessioncallback=new Session.StatusCallback() { 

     @Override 
     public void call(Session session, SessionState state, Exception exception) { 
      // TODO Auto-generated method stub 
      Log.e("Sessionstate", ""+state); 
      if(session.getState()==SessionState.OPENED) 
      { 
       makeuserdetailsrequest(session); 
      } 

     } 
    }; 

    private Request.GraphUserCallback graphcallback=new Request.GraphUserCallback() { 

     @Override 
     public void onCompleted(GraphUser user, Response response) { 
      // TODO Auto-generated method stub 
      Log.e("FB RES", ""+response); 
      Log.e("UID", ""+user.getId()); 
     } 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 

    { 
     super.onCreate(savedInstanceState); 
     //Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS); 
     setContentView(R.layout.activity_resgistration_app); 

     try { 
      PackageInfo info = getPackageManager().getPackageInfo(
        "com.primus.taukyresigstration", 
        PackageManager.GET_SIGNATURES); 
      for (Signature signature : info.signatures) { 
       MessageDigest md = MessageDigest.getInstance("SHA"); 
       md.update(signature.toByteArray()); 
       Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
       } 
     } catch (NameNotFoundException e) { 

     } catch (NoSuchAlgorithmException e) { 

     } 

     uihelper=new UiLifecycleHelper(this, sessioncallback); 
     uihelper.onCreate(savedInstanceState); 

     username=(EditText) findViewById(R.id.register_usernameone); 

     password=(EditText) findViewById(R.id.register_password); 

     name=(EditText) findViewById(R.id.register_username); 

     nickname=(EditText) findViewById(R.id.register_nickname); 

     email=(EditText) findViewById(R.id.register_email); 

     phone=(EditText) findViewById(R.id.register_phone); 

     Registertauky=(Button) findViewById(R.id.Registertauky); 

     user_image=(ImageView) findViewById(R.id.register_user_picture); 

     fb_connect=(Button) findViewById(R.id.facbook_getinfo); 

     fbSession=new Session(this); 
     fbSession.addCallback(sessioncallback); 


     //This going to register the tauky server 

     Registertauky.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

      } 
     }); 


     //This button click going to connect to the facebook 
     fb_connect.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub  
      if(fbSession.isOpened()) 
      { 
       fbSession=Session.getActiveSession(); 
       //do the fetching of user details.. 
      } 
      else 
      { 
       fbSession=Session.openActiveSession(ResgistrationApp.this, true, sessioncallback); 
      } 
      } 
     }); 
    } 

    //--------------------------------------------------------------------------------------------------------------// 



    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 
     uihelper.onActivityResult(requestCode, resultCode, data); 
     //Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
    } 



    class LoginretrieveTask extends AsyncTask<Void, Void, Void> 
    { 
     Session session; 

     public LoginretrieveTask(Session fbsession) { 
      // TODO Auto-generated constructor stub 
      session=fbsession; 
     } 

     @Override 
     protected Void doInBackground(Void... params) { 
      // TODO Auto-generated method stub 

      return null; 
     } 

    } 

    protected void makeuserdetailsrequest(Session session) { 
     // TODO Auto-generated method stub 

     Request user_request=Request.newMeRequest(session, graphcallback); 
     user_request.executeAsync(); 
    } 


    @Override 
    protected void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 
     uihelper.onResume(); 

    } 

    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     uihelper.onPause(); 

    } 

    @Override 
    protected void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 
     uihelper.onDestroy(); 
    } 

    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onRestoreInstanceState(savedInstanceState); 
     uihelper.onSaveInstanceState(savedInstanceState); 
    } 
} 

Log.e ("Sessionstate", "" + состояние); здесь показано, что LOGIN FAILED CLOSED.

и файл манифеста

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.primus.taukyresigstration" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="17" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.primus.taukyresigstration.ResgistrationApp" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="com.facebook.LoginActivity" 
      android:theme="@android:style/Theme.Translucent.NoTitleBar" 
      android:label="@string/app_name"> 
     </activity> 
     <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/appid"/> 
    </application> 

</manifest> 

так может любой точке меня, где я делаю неправильно .Thaks для любого ответа

ответ