title: Not able to login for posting image on my Facebook wall
body: <p>I am using following code to post image on Facebook wall. 
  it's working fine. </p>
  
  <p>Problem is  --> if the device having Facebook Application i am not able to post image on wall.</p>
  
  <p>-->The device does't having Facebook App. it's working without any problems.</p>
  
  <p>please help me where is the problem. 
  this is the code i am using here.</p>
  
  <pre><code>public class ShareOnFacebook extends Activity  {
  
  private static final String APP_ID = "269876589726953";
  private static final String[] PERMISSIONS = new String[] {"publish_stream"};
  
  private static final String TOKEN = "access_token";
  private static final String EXPIRES = "expires_in";
  private static final String KEY = "facebook-credentials";
  
        private Facebook facebook;
        private String messageToPost; 
        private Bitmap mBitmap;
  
        public boolean saveCredentials(Facebook facebook) {
             Editor editor = getApplicationContext().getSharedPreferences(KEY, Context.MODE_PRIVATE).edit();
                    editor.putString(TOKEN, facebook.getAccessToken());
                    editor.putLong(EXPIRES, facebook.getAccessExpires());
                      return editor.commit();
              }
  
      public boolean restoreCredentials(Facebook facebook) {
          SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(KEY, Context.MODE_PRIVATE);
          facebook.setAccessToken(sharedPreferences.getString(TOKEN, null));
          facebook.setAccessExpires(sharedPreferences.getLong(EXPIRES, 0));
          return facebook.isSessionValid();
      }
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);  
  
      mBitmap = CropImage.getBitmapCrop();    
  
      facebook = new Facebook(APP_ID);
      restoreCredentials(facebook);
      requestWindowFeature(Window.FEATURE_NO_TITLE);
      setContentView(R.layout.share);
  
      String facebookMessage = getIntent().getStringExtra("facebookMessage");
      if (facebookMessage == null){
          facebookMessage = "Test wall post";
      }
      messageToPost = facebookMessage;
  }
  
  public void doNotShare(View button){
      finish();
  }
  public void share(View button){
      if (! facebook.isSessionValid()) {
          loginAndPostToWall();
      }
      else {
          postToWall(messageToPost);
      }
  }
  
  public void loginAndPostToWall(){
       facebook.authorize(this, PERMISSIONS, new LoginDialogListener());
  }
  
  public void postToWall(String message)  { 
  
  
      // posting image on FB wall
      byte[] data = null;
  
      Bitmap bi = mBitmap;
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
      data = baos.toByteArray();
      Bundle params = new Bundle();
      params.putString(Facebook.TOKEN, facebook.getAccessToken());        
      params.putString("method", "photos.upload");
      params.putByteArray("picture", data);
      AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
      mAsyncRunner.request(null, params, "POST", new PhotoUploadListener(), null);
  
      finish();   
  }
  
  public class PhotoUploadListener extends com.facebook.android.BaseRequestListener {
  
      public void onComplete(final String response, final Object state) {         
          //dialog.dismiss();
          //showToast("Image shared on your facebook wall!");          
      }
      public void onFacebookError(FacebookError error) {
         //dialog.dismiss();
         Toast.makeText(getApplicationContext(), "Facebook Error: " + error.getMessage(),Toast.LENGTH_LONG).show();
      }
  }
  
  class LoginDialogListener implements DialogListener {
      public void onComplete(Bundle values) {
          saveCredentials(facebook);
          if (messageToPost != null){
          postToWall(messageToPost);
      }
      }
      public void onFacebookError(FacebookError error) {
          showToast("Authentication with Facebook failed!");
          finish();
      }
      public void onError(DialogError error) {
          showToast("Authentication with Facebook failed!");
          finish();
      }
      public void onCancel() {
          showToast("Authentication with Facebook cancelled!");
          finish();
      }
  }
  
  private void showToast(String message){
      Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
  }
  }
  </code></pre>