2

我想發送照相機意圖拍攝的照片。如何檢測照片是否被拍攝(照相機意圖)

  • 相機工作正常
  • 我有路徑從mMediaUri.getPath()(這是正確的)
  • 我有沒有辦法把它(postImage())(正常工作)

當我開始一個意圖,相機顯示,但方法postImage不會等待,直到拍攝照片。 PostImage在啓動意圖後才加載。

如何在拍照後加載postImage?

如何檢測照片是否被拍攝?

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     mMediaUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); 
     if(mMediaUri == null){ 
      Toast.makeText(MainActivity.this, "Problem!", Toast.LENGTH_LONG).show(); 

     } 
     else { 
      takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mMediaUri); 
      startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 

      postImage("mail", mMediaUri.getPath()); 

     } 

    } 

enter image description here

回答

6

簡單的,你可以利用它來開啓相機:

static final int REQUEST_IMAGE_CAPTURE = 1; 

private void dispatchTakePictureIntent() { 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
    } 
} 

和檢測捕獲(確定或取消按鈕)

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     Bitmap imageBitmap = (Bitmap) extras.get("data"); 
     mImageView.setImageBitmap(imageBitmap); 
    } 
} 

不要忘記給予許可:

<manifest ... > 
    <uses-feature android:name="android.hardware.camera" 
        android:required="true" /> 
    ... 
</manifest> 

還要檢查這些鏈接:

http://developer.android.com/training/camera/photobasics.html https://developer.android.com/training/camera/index.html

+0

偉大的答案!謝謝!你有什麼想法是可以擺脫這個OK按鈕,拍照後返回OK? – klijakub

+1

@klijakub此屏幕(帶有確定按鈕)可以根據操作系統和設備型號而有所不同。例如,您在Sony XPERIA手機上看不到此屏幕。如果您不想看到此屏幕,則需要創建自定義相機活動。 –

相關問題