0

Camera intent.getData()返回null,在某些設備上。Camera intent.getData()在某些設備中返回null,主要在android 7.0中

啓動相機的結果,

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(cameraIntent, CAMERA_REQUEST); 

我嘗試下面的圖像的開放的我們的代碼獲取路徑,

public static Uri getImageUri(Context inContext, Bitmap inImage) { 
     ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
     inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
     String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null); 
     return Uri.parse(path); 
    } 

它會給我開放的形象,但圖像質量會變差。 任何幫助表示讚賞。

回答

1

Camera intent.getData()返回null,在某些設備上。

它應該爲所有相機應用返回null

我嘗試下面的圖片

代碼不「獲得圖像的開放的我們的路」的開放的我們的代碼獲取路徑。它將Bitmap保存爲隨機的未記錄文件,然後從代表該內容的MediaStore返回Uri

它也浪費堆空間,因爲你創建ByteArrayOutputStream,寫入一個JPEG,然後把它扔掉。

圖像質量會變差

的圖像質量差,首先,因爲你問的攝像頭應用程序,讓您的縮略圖。使用EXTRA_OUTPUT告訴相機應用程序保存全分辨率圖像的位置,然後在onActivityResult()中使用該位置。 This sample app演示了這一點。

+0

授予寫入外部存儲器的權限,同時在運行時檢查權限 –

+0

也在清單文件中添加此項:android:largeHeap =「true」 –

相關問題