Tejas Golwala
Tejas Golwala

Reputation: 25

Upload image to facebook from SD card in android

I Can't able to upload the images on the facebook from SD card...I used below code....but it did not give me error but at the same time it did not upload the images

     byte[] data = null;
     try {
         FileInputStream fis = new FileInputStream(filepath);
         BitmapFactory.Options options = new BitmapFactory.Options();                   
            options.inSampleSize = 2; 
         Bitmap bi = BitmapFactory.decodeStream(fis);

         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
         data = baos.toByteArray();  
      } catch (FileNotFoundException e) { 
         e.printStackTrace();
         Log.d("onCreate", "debug error  e = " + e.toString());
      }     

         Bundle params = new Bundle(); 
         params.putString("method", "photos.upload");  
         params.putByteArray("picture", data);

Upvotes: 0

Views: 810

Answers (2)

Venky
Venky

Reputation: 11107

Try below Snippet for Post Image from SDCard :

Convert your image to bitmap and proceed

private void postToWall() {   
    AsyncFacebookRunner mAsyncRunner = new   AsyncFacebookRunner(facebook);
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.PNG, 100, stream);  // where bm is bitmap from Sdcard
    byte[] byteArray = stream.toByteArray();
    Bundle param = new Bundle();
    param = new Bundle();
    param.putString("message", "All");
    param.putString("filename", "TEst");
    param.putByteArray("image", byteArray);
    mAsyncRunner.request("me/photos", param, "POST", new fbRequestListener(), null);
  }

  public class fbRequestListener implements RequestListener {

      @Override
      public void onComplete(String response, Object state) {
          // TODO Auto-generated method stub
          Log.d("RESPONSE",""+response);

      }

      @Override
      public void onIOException(IOException e, Object state) {
          // TODO Auto-generated method stub
          Log.d("RESPONSE",""+e);

      }

      @Override
      public void onFileNotFoundException(FileNotFoundException e,
              Object state) {
          // TODO Auto-generated method stub
          Log.d("RESPONSE",""+e);

      }

      @Override
      public void onMalformedURLException(MalformedURLException e,
              Object state) {
          // TODO Auto-generated method stub

      }

      @Override
      public void onFacebookError(FacebookError e, Object state) {
          // TODO Auto-generated method stub
          Log.d("RESPONSE",""+e);

      }

      }

Upvotes: 1

mayank_droid
mayank_droid

Reputation: 1015

You have to do this:

 mAsyncRunner = new AsyncFacebookRunner(fbObj);  
  mAsyncRunner.request(null, parameters, "POST",
                        new RequestListener() {

                            @Override
                            public void onMalformedURLException(
                                    MalformedURLException e, Object state) {
                                // TODO Auto-generated method stub

                            }

                            @Override
                            public void onIOException(IOException e, Object state) {
                                // TODO Auto-generated method stub

                            }

                            @Override
                            public void onFileNotFoundException(
                                    FileNotFoundException e, Object state) {
                                // TODO Auto-generated method stub

                            }

                            @Override
                            public void onFacebookError(FacebookError e,
                                    Object state) {
                                // TODO Auto-generated method stub

                            }

                            @Override
                            public void onComplete(String response, Object state) {
                                // TODO Auto-generated method stub
                                Log.i("upload", "image uploaded!!!! " + response);
                            }
                        }, null);

Upvotes: 0

Related Questions