2012-02-21 13 views
3

facebookへの接続全体がビットマップのアップロード用であるというアプリを書いています。アプリを登録せずにSDDをダウンロードするなどの方法はありますか?FacebookのないFacebookからfacebookに画像をアップロードする

+0

あなたはまだ何を試してみましたみては?何か働いていますか? – trgraglia

+0

私は今までsdkで試してみましたが、何も動かなかった –

答えて

0

確かに、ユーザーにはすでにFacebookブックアプリがインストールされていると仮定すると、あなたのイメージでACTION_SENDインテントを起動できます。その後、ユーザーはFacebookを選択してアップロードします。醜いイモの種類...なぜSDDを避けるのですか?統合するのはあまり難しいことではなく、あなたのアプリで何か他のことを考えるときにもっと柔軟になることができます。

0

「ブロディー」のように言っても、それは不快なものになります。これは個人的なアプリですか、流通ですか?

あなたがSDKなどを使用する場合は、この記事をチェックアウト:Android - Upload photo to Facebook with Facebook Android SDK

+0

私はこの記事を前に試してみました。 Javaは特定のライブラリなどを認識しないので、私は非常に簡単な方法があることを望んでいました。それ。それはうまくいけば流通のためです:) –

+0

あなたはコードを投稿する必要があります。 – trgraglia

0

dudeがこの

import org.json.JSONException; 
import org.json.JSONObject; 
import android.app.Activity; 
import android.app.Dialog; 
import android.app.ProgressDialog; 
import android.graphics.Bitmap; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.os.Handler; 
import android.text.TextUtils; 
import android.text.util.Linkify; 
import android.view.View; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class UploadPhotoResultDialog extends Dialog { 

private String response, photo_id; 
private TextView mOutput, mUsefulTip; 
private Button mViewPhotoButton, mTagPhotoButton; 
private ImageView mUploadedPhoto; 
private Activity activity; 
private ProgressDialog dialog; 
private boolean hidePhoto = false; 
private Handler mHandler; 

public UploadPhotoResultDialog(Activity activity, String title, String response) { 
    super(activity); 
    this.activity = activity; 
    this.response = response; 
    setTitle(title); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mHandler = new Handler(); 

    setContentView(R.layout.upload_photo_response); 
    LayoutParams params = getWindow().getAttributes(); 
    params.width = LayoutParams.FILL_PARENT; 
    params.height = LayoutParams.FILL_PARENT; 
    getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); 

    mOutput = (TextView) findViewById(R.id.apiOutput); 
    mUsefulTip = (TextView) findViewById(R.id.usefulTip); 
    mViewPhotoButton = (Button) findViewById(R.id.view_photo_button); 
    mTagPhotoButton = (Button) findViewById(R.id.tag_photo_button); 
    mUploadedPhoto = (ImageView) findViewById(R.id.uploadedPhoto); 

    JSONObject json; 
    try { 
     json = Util.parseJson(response); 
     final String photo_id = json.getString("id"); 
     this.photo_id = photo_id; 

     mOutput.setText(json.toString(2)); 
     mUsefulTip.setText(activity.getString(R.string.photo_tip)); 
     Linkify.addLinks(mUsefulTip, Linkify.WEB_URLS); 

     mViewPhotoButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (hidePhoto) { 
        mViewPhotoButton.setText(R.string.view_photo); 
        hidePhoto = false; 
        mUploadedPhoto.setImageBitmap(null); 
       } else { 
        hidePhoto = true; 
        mViewPhotoButton.setText(R.string.hide_photo); 
        /* 
        * Source tag: view_photo_tag 
        */ 
        Bundle params = new Bundle(); 
        params.putString("fields", "picture"); 
        dialog = ProgressDialog.show(activity, "", 
          activity.getString(R.string.please_wait), true, true); 
        dialog.show(); 
        Utility.mAsyncRunner.request(photo_id, params, 
          new ViewPhotoRequestListener()); 
       } 
      } 
     }); 
     mTagPhotoButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       /* 
       * Source tag: tag_photo_tag 
       */ 
       setTag(); 
      } 
     }); 
    } catch (JSONException e) { 
     setText(activity.getString(R.string.exception) + e.getMessage()); 
    } catch (FacebookError e) { 
     setText(activity.getString(R.string.facebook_error) + e.getMessage()); 
    } 
} 

public void setTag() { 
    String relativePath = photo_id + "/tags/" + Utility.userUID; 
    Bundle params = new Bundle(); 
    params.putString("x", "5"); 
    params.putString("y", "5"); 
    Utility.mAsyncRunner.request(relativePath, params, "POST", new TagPhotoRequestListener(), 
      null); 
} 

public class ViewPhotoRequestListener extends BaseRequestListener { 

    @Override 
    public void onComplete(final String response, final Object state) { 
     try { 
      JSONObject json = Util.parseJson(response); 
      final String pictureURL = json.getString("picture"); 
      if (TextUtils.isEmpty(pictureURL)) { 
       setText("Error getting \'picture\' field of the photo"); 
      } else { 
       mHandler.post(new Runnable() { 
        @Override 
        public void run() { 
         new FetchImage().execute(pictureURL); 
        } 
       }); 
      } 
     } catch (JSONException e) { 
      dialog.dismiss(); 
      setText(activity.getString(R.string.exception) + e.getMessage()); 
     } catch (FacebookError e) { 
      dialog.dismiss(); 
      setText(activity.getString(R.string.facebook_error) + e.getMessage()); 
     } 
    } 

    public void onFacebookError(FacebookError error) { 
     dialog.dismiss(); 
     setText(activity.getString(R.string.facebook_error) + error.getMessage()); 
    } 
} 

public class TagPhotoRequestListener extends BaseRequestListener { 

    @Override 
    public void onComplete(final String response, final Object state) { 
     if (response.equals("true")) { 
      String message = "User tagged in photo at (5, 5)" + "\n"; 
      message += "Api Response: " + response; 
      setText(message); 
     } else { 
      setText("User could not be tagged."); 
     } 
    } 

    public void onFacebookError(FacebookError error) { 
     setText(activity.getString(R.string.facebook_error) + error.getMessage()); 
    } 
} 

public void setText(final String txt) { 
    mHandler.post(new Runnable() { 
     @Override 
     public void run() { 
      mOutput.setText(txt); 
     } 
    }); 
} 

private class FetchImage extends AsyncTask<String, Void, Bitmap> { 
    @Override 
    protected Bitmap doInBackground(String... urls) { 
     return Utility.getBitmap(urls[0]); 
    } 

    @Override 
    protected void onPostExecute(Bitmap result) { 
     dialog.dismiss(); 
     mUploadedPhoto.setImageBitmap(result); 
    } 
}} 
関連する問題