您正在收到錯誤請求錯誤,因爲您將錯誤的值傳遞給Facebook API。
首先,如果你是通過鏈接或網址上傳圖片/照片,那麼你必須使用「源」標籤和不的「鏈接」標籤,你在你的代碼有。第二,如果你要解決上述問題,我懷疑代碼會工作,看你的strpostimageurl
實際上沒有一個有效的URL。
第三,由於它不是一個有效的URL,因此使用"source"
標記將不是一個選項。您將需要使用像這樣:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmpImageGallery.compress(CompressFormat.JPEG, 100, baos);
Bundle postImgGallery = new Bundle();
// ADD THE PHOTO DATA TO THE BUNDLE
postImgGallery.putByteArray("photo", baos.toByteArray());
// ADD THE CAPTION FROM THE STRING finalStatusMessage TO THE BUNDLE
if (finalStatusMessage.equals("")) {
/***** DO NOTHING HERE *****/
} else {
postImgGallery.putString("caption", finalStatusMessage);
}
mAsyncRunner.request("me/photos", postImgGallery, "POST", new PhotoUploadListener(), null);
這裏,
mAsyncRunner
是AsyncFacebookRunner Class
的一個實例是Facebook的SDK的一部分。
bmpImageGallery
是其中由所述用戶選擇的圖像被存儲在Bitmap
的一個實例。它得到利用從圖庫中的用戶選擇的圖像:
這是代碼運行在OnClick
事件打開的庫,讓用戶一Button
的從中選擇一個照片/圖片:
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, reqcdGalleryImage);
然後,使用onActivityResult()
方法,所選擇的圖像被傳遞到在代碼先前使用的Bitmap
實例bmpImageGallery
:
bmpImageGallery = MediaStore.Images.Media.getBitmap(this.getContentResolver(), targetURI);
編輯:
那就試試這個(的OnClick):
Intent getCameraImage = new Intent("android.media.action.IMAGE_CAPTURE");
File cameraFolder;
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cameraFolder = new File(android.os.Environment.getExternalStorageDirectory(),"give_a_folder_name/camera");
else
cameraFolder= StatusUpdate.this.getCacheDir();
if(!cameraFolder.exists())
cameraFolder.mkdirs();
File photo = new File(Environment.getExternalStorageDirectory(), "give_a_folder_name/camera/camera_snap.jpg");
getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
initialURI = Uri.fromFile(photo);
startActivityForResult(getCameraImage, 2);
在這種onActivityResult()
:
targetURI = initialURI;
getContentResolver().notifyChange(targetURI, null);
ContentResolver cr = getContentResolver();
try {
// SET THE IMAGE FROM THE CAMERA TO THE IMAGEVIEW
bmpImageCamera = android.provider.MediaStore.Images.Media.getBitmap(cr, targetURI);
// SET THE IMAGE FROM THE GALLERY TO THE IMAGEVIEW
imgvwSelectedImage.setImageBitmap(bmpImageCamera);
} catch (Exception e) {
e.printStackTrace();
}
的targetURI中和initialURI是全局聲明
我採取這一開放的情況下,從相機的圖像和存儲到sdcard.Can我可以使用這個路徑,以圖形api發佈。如果不可能,我怎樣才能轉換成瓦利d一個 – user1871951
/mnt/sdcard/DCIM/mnt/sdcard/DCIM/Camera1354795516555.jpg舊/mnt/sdcard/DCIM/mnt/sdcard/DCIM/Camera/1354795516555.jpg新的,對嗎? – user1871951
@ user1871951:檢查 –