Android6.0機型上調用系統相機拍照返回的resultCode值始終等於0的問題

來源:互聯網
上載者:User

標籤:大於等於   rect   導致   err   ash   strong   實現   文章   允許   

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

正常情況下調用系統相機拍照: 
如果拍照後點擊的是“確定”表徵圖,返回的resultCode = -1(Activity.RESULT_OK); 
如果點擊的是底部的“返回”鍵,返回的resultCode = 0(Activity.RESULT_CANCELED)。

簡單的調用系統相機的寫法:

//調用系統拍照Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);String photofileName = "IMG_" + new Date() + ".jpg";String imgUrl = Environment.getExternalStorageDirectory() + File.separator + "tempWhy"+ File.separator + photofileName;//必須使用已經存在的檔案夾tempWhyintent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(imgUrl)));//啟動拍照的表單。並註冊 回調處理startActivityForResult(intent, 1111);

返回時的處理

@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    if (resultCode == Activity.RESULT_OK) {        switch (requestCode) {            //拍照功能            case 1111:                break;        }    }}

那麼,今天碰到的在Android6.0機型上出現的調用系統相機拍照返回的resultCode的值始終等於0的問題,主要是由於以下兩方面原因導致到:

一、沒有實現運行時許可權的處理 
當AndroidManifest.xml檔案中的Android:targetSdkVersion值大於等於23的時候,此時必須要實現運行時許可權的處理,因為向SD卡讀寫檔案的許可權——android.permission.WRITE_SETTINGS屬於運行時許可權。 
解決方案: 
方案一:將AndroidManifest.xml檔案中的android:targetSdkVersion值修改為小於23 
方案二:添加運行時許可權的處理

二、當指定拍照圖片儲存路徑的時候,儲存目錄(檔案夾)未建立 
解決方案:

調用系統相機拍照之前先建立儲存目錄

Android6.0機型上調用系統相機拍照返回的resultCode值始終等於0的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.