2015-08-22 68 views
1
中提到的

我的應用程序開始打破Lollipop,它開始了我試圖找出原因並解決它的漫長任務。Android Lollipop ACTION_IMAGE_CAPTURE無法正常工作,正如文檔

我終於決定,我應該按照谷歌在文檔中編寫的這本書來做,而這裏是踢球者,他們的文檔中的代碼不起作用!

我談論代碼從這裏:https://developer.android.com/training/camera/photobasics.html#TaskCaptureIntent

<manifest ...> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
       android:maxSdkVersion="18" /> 
</manifest> 

這段代碼是由谷歌倡導的防止相機從意向開始它本身上的棒棒糖!

takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
       Uri.fromFile(photoFile)); 

這段代碼是應該幫我指定我想要的圖像是URI,這樣我就可以得到全尺寸圖像。這傢伙把我從意向NULL返回的數據。我談論這些數據:protected void onActivityResult(int requestCode, int resultCode, Intent data) {

我對這種憤怒表示歉意,但是他們在文檔中編寫的代碼不起作用嗎? (如果我做錯了,請直接告訴我)

我知道的很多。我想問的是,如果有人知道如何在調用棒棒堂上的ACTION_IMAGE_CAPTURE活動後獲得完整圖像。我需要完整圖像而不僅僅是縮略圖的原因是我需要爲圖像使用圖像中的EXIF數據。 (GPS數據) 如果您打開相機應用程序並將其取出,EXIF會自行添加,但如果我將其稱爲此活動,它不會直接保存圖像,我必須將其從我得到的數據中保存,最出乎意料的是使用此代碼的縮略圖:

Bundle extras = data.getExtras(); 
      Bitmap imageBitmap = (Bitmap) extras.get("data"); 
+0

所以你在創建'photoFile'該目錄是由[getExternalFilesDir()](HTTPS返回的目錄,請稍後再試: //developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)),但相機似乎無法寫入文件?你可以在你創建'photoFile'的地方添加一行嗎? – ianhanniballake

回答

0

爲什麼在使用權限內有最大sdk。

你已經改變

<manifest ...> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
       android:maxSdkVersion="18" /> 
</manifest> 

<manifest ...> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
</manifest> 
+0

我做到了。它很明顯。我在咆哮的是爲什麼它在文檔中出現。 –

+0

我不知道。去告訴谷歌。爲什麼在這裏張貼?如果你已經知道解決方案? –

+0

對不起我的評論的粗魯。我真的很沮喪。我的問題的最後部分仍然沒有答案。這是:爲什麼我會丟失EXIF數據?它不是我保存的圖像的一部分。 –