2011-07-01 72 views
1

IM建立一些應用程序調用攝像頭的活動..拍攝照片並將其發送到Web服務器

我只是從我的應用程序拍照並將其發送到網絡服務器..

但我不能讓我的圖片的路徑..

,我都會讓NullException錯誤時,試圖讓圖像路徑..

呼叫相機活動時,這裏是我的代碼:

Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    this.startActivityForResult(camera, PICTURE_RESULT); 

,這是對活動結果代碼:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == PICTURE_RESULT){ 
     if (resultCode == Activity.RESULT_OK) { 
      takePicture(data); 
     } else if (resultCode == Activity.RESULT_CANCELED) { 

     } 
    } 
} 

protected void takePicture(Intent data) { 
    Bundle b = data.getExtras(); 
    pic = (Bitmap) b.get("data"); 
    if (pic != null) { 
     imagePicture.setImageBitmap(pic); 
    } 
} 

是有什麼錯我的代碼?

謝謝

+0

您已經添加了攝像頭允許您的清單,是嗎? – Otra

+0

是的,我已經添加了權限 – pensilhijau

回答

2

好吧,我看到你的問題。你沒有設置開始的路徑。請看這個文檔。

http://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE

所以你看,當你調用ACTION_IMAGE_CAPTURE你不給它傳遞額外EXTRA_OUTPUT它告知圖像將被存儲在應用程序。這EXTRA_OUTPUT是文件的路徑。

所以,正確下,你做的意圖這樣做:

Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
URI pictureUri = Uri.fromFile(new File(<path to your file>)); 
camera.putExtra(MediaStore.EXTRA_OUTPUT, pictureUri); 
+0

如果我不設置路徑,我只是得到小圖像..對不對?我知道..我會嘗試它知道..謝謝otra .. – pensilhijau

+0

它的工作otra,謝謝.. – pensilhijau

相關問題