2012-07-13 28 views
5

Tôi sử dụng mã sau chụp Ảnh từ máy ảnh và để có được đường dẫn của hình ảnh.Mục đích của máy ảnh cho ACTION_IMAGE_CAPTURE không xuất hiện trên Samsung Galaxy Nexus (4.0.2)

... 
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(cameraIntent, CAMERA_IMAGE_CAPTURE); // image capture 
... 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Log.d(TAG, "onActivityResult:" + resultCode + " request:" + requestCode); 

    switch (requestCode) { 
     case CAMERA_IMAGE_CAPTURE: 
      Uri selectedImageUri = data.getData(); 
      userImagePath = getPath(selectedImageUri); 
     break; 
    } 
} 

Nó hoạt động tốt trên trình mô phỏng và trên các thiết bị khác nhau. Nhưng trên Samsung Galaxy Nexus (4.0.2) nó không khởi chạy ứng dụng Camera. Nhưng nó trả về RESULT_OK cho onActivityResult và tôi thấy không có ngoại lệ nào trong LogCat. Vui lòng cho tôi và lời khuyên cách giải quyết vấn đề này. Cảm ơn bạn trước!

+0

http://stackoverflow.com/questions/7277287/default-camera-activity-not-finishing-upon-ok- button-press/14806908 # 14806908 Chỉ cần kiểm tra liên kết này..có thể hữu ích ....... Vấn đề có thể do tên tệp hoặc đường dẫn (sẽ tốt hơn nếu nó không có ký tự đặc biệt như dấu cách) – Satish

Trả lời

7

Bạn đang thiếu EXTRA_OUTPUT, điều này có thể ảnh hưởng đến các vấn đề. My Galaxy Nexus có thể chạy this sample project thành công, trong đó sử dụng đoạn mã sau để yêu cầu hình ảnh:

Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); 

output = new File(dir, "CameraContentDemo.jpeg"); 
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output)); 

startActivityForResult(i, CONTENT_REQUEST); 
+1

Xin chào, thật không may là ví dụ tương tự không hoạt động đối với tôi. Trên Samsung Galaxy S1 của tôi, sau khi nhấp OK trên màn hình xác nhận, ý định không quay trở lại hoạt động của tôi. Có bất kỳ mẹo nào tôi đang thiếu không? –

+0

@TomBurger: Bạn nên được gọi với 'onActivityResult()'. Nếu không, đó có lẽ là lỗi của Samsung. – CommonsWare

+1

không, sau khi nhấp OK, nó sẽ đưa tôi trở lại ứng dụng máy ảnh. Nó chỉ trở lại hoạt động của tôi sau khi nhấp vào Hủy. Btw, cùng một vấn đề ví dụ ở đây: http://stackoverflow.com/questions/8221879/how-to-go-back-from-calling-intent –

Các vấn đề liên quan