これは、私は私のアプリで使用するものです。そして、それは動作します。
protected void uploadPhoto() {
if (!Utility.mFacebook.isSessionValid()) {
Util.showAlert(this, "Warning", "You must first log in.");
} else {
if (targetUri != null) {
Bundle params = new Bundle();
try {
params.putByteArray("photo", Utility.scaleImage(getApplicationContext(), targetUri));
} catch (Exception e) {
e.printStackTrace();
}
params.putString("caption", txtPhotoCaption.getText().toString());
Utility.mAsyncRunner.request("replace this with the users ID"+ "/photos&access_token=" + Utility.mFacebook.getAccessToken(),
params, "POST", new PhotoUploadListener(), null);
txtPhotoCaption.setText("");
Toast.makeText(getApplicationContext(), "Photo uploaded successfully", Toast.LENGTH_SHORT).show();
this.finish();
}
}
}
サンプルアプリケーションで使用しているのと同じ方法を使用しています。スケーリングの長所や短所に陥ることなく、画像を拡大縮小しないでください。 "caption"属性がEditTextから取得されています。そして、実際の画像は、フィールド "targetUri"にあり、グローバル変数として宣言されています。これは、デバイス上のデフォルトのギャラリーを使用してイメージを取得しています。完全性のために、これはデフォルトのギャラリーアプリから画像を取得するためのコードです。
btnAddPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
}
});
(これは、アプリを選択するようにユーザに要求します)そして、それはここでonActivityResult()
に処理されます。私もにプレビューとしてImageViewの中で選択した画像を設定しています:
NOTE私は答えとしてここにコードを投稿する前に、ユーザー
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
Bitmap bitmap = null;
if (resultCode == RESULT_OK) {
targetUri = data.getData();
Log.e("IMG URI", targetUri.toString());
try {
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
try {
Utility.scaleImage(getApplicationContext(), targetUri);
imgDisplaySelectedImage.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
にログインし、私は再び友人の壁にアップロードをテストしています。そしてそれは本当にうまくいく。これがあなたにも役立つことを願っています。
EDIT:
Intent.ACTION_GET_CONTENTがonActivityResult()下のプレビュー画像表示と仲良くしていない使用して、最新のコメントで述べたように。少し修正したコードを修正しました。
私が奇妙なのは、 "Complete action using"ポップアップで、私は銀河のSにアストロファイルマネージャーもギャラリーも手に入れていないという事実です。それは私にファイルマネージャーを提供します)とQuickoffice Pro。それは言われている、2つの選択と写真はまだアップロードされています。
はうまく動作していないようですが、私は同じ結果を得ます。 – Slacker616
待って、ユーザーのフィードに投稿しようとしていますが、そのパスは画像を期待していません。 [the docs。](http://developers.facebook.com/docs/reference/api/user/#posts)をチェックすると、 "picture"パラメータが文字列であることがわかります。あなたは何をしようとしているのですか?写真を壁の写真に投稿しますか? –
ええ、私は実際には、ユーザーの壁に画像をアップロードするために "画像"パラメータで最初のコードを使用しますが、私は壁のアルバムIDを取得しますが、今はユーザーの友人の壁に画像を投稿します。 – Slacker616