2016-04-25 47 views
1

我用下面的代碼採摘照片:Android照片選取器棒棒糖及以上

Intent intent =new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("image/*"); 
startActivityForResult(intent, 100); 

,並與下面的返回結果:

InputStream inputStream = getContentResolver().openInputStream(data.getData()); 
Bitmap bmp1 = BitmapFactory.decodeStream(inputStream); 

這適用於預棒棒糖,但良好它說「不幸的是,應用程序已停止」棒棒糖和以上。我需要棒棒糖和以上的任何權限嗎?自棒棒糖以來有所改變?請引導我/建議一個簡單的方法來挑選棒棒糖和以上的照片。

回答

0

我需要棒棒糖和以上的任何權限?

您應該持有READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE。請注意,在Android 6.0+上,如果您的targetSdkVersion爲23或更高,則需要使用運行時權限向用戶請求此權限,因爲這些權限爲dangerous

+0

我會嘗試使用權限,但有兩個問題:爲什麼它沒有權限前棒棒糖?上面的代碼打開圖庫應用程序,但在返回結果時停止,它可以在沒有這些權限的情況下執行嗎? –

+0

@HasaanAhmed:「爲什麼它沒有棒棒糖的權限?」 - 你應該在Android 4.4上遇到同樣的問題。在Android 4.3及更低版本中,「READ_EXTERNAL_STORAGE」要麼不存在要麼沒有被強制執行。 「並且上面的代碼打開了圖庫應用程序,但在返回結果時停止,是否可以在沒有這些權限的情況下執 - 我很抱歉,但我不明白這個問題。 – CommonsWare

+0

謝謝,它現在與權限(y) –

0

使用以下方式

Intent intent = new Intent(Intent.ACTION_GET_CONTENT, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     intent.setType("image/*"); 
     startActivityForResult(intent, Const.PICK_IMAGE_REQUEST); 

或使用自定義佈局和活動

我已經開發it.Please查看以下鏈接中的所有4.0或以上版本的Android工作。你不需要請求權限,因爲它的目標版本是22. https://github.com/rajscet/Photo_Picker_Git

+0

現在工作請粘貼相關的代碼在這裏以及 –