-1

Android 앱을 개발 중입니다. 내 애플 리케이션에서 파일로 저장 비트 맵입니다. 하지만 매니페스트 파일에 올바른 권한을 설정하더라도 예외가 거부되었습니다. 아래 내 코드를 참조하십시오. 내가 저장하면 내가 파일Android에서 파일을 저장하는 동안 권한이 거부되었습니다.

private void downloadImage(Bitmap bitmap) 
    { 
     try{ 
      String fileName = String.valueOf(System.currentTimeMillis())+".jpeg"; 
      File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileName); 

      if(file.exists()){ 
       file.delete(); 
      } 

      OutputStream os = new BufferedOutputStream(new FileOutputStream(file)); 
      bitmap.compress(Bitmap.CompressFormat.JPEG, 100, os); 


      Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); 
      Uri contentUri = Uri.fromFile(file); 
      mediaScanIntent.setData(contentUri); 
      sendBroadcast(mediaScanIntent); 
      Toast.makeText(getBaseContext(),"Image saved to your device",Toast.LENGTH_SHORT).show(); 
     } 
     catch (IOException e) 
     { 
      Toast.makeText(getBaseContext(),e.getMessage(),Toast.LENGTH_SHORT).show(); 
     } 
    } 

로 비트 맵을 저장하는 방법을

이가 이렇게 나에게 오류를 토스트된다.

enter image description here

이 내가 매니페스트 파일에 설정된 모든 권한입니다.

<uses-permission android:name="android.permission.WAKE_LOCK"/> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-feature android:name="android.hardware.camera" /> 
    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

어떻게 해결할 수 있습니까? 왜 그 오류가 던지고 있습니까? 제 코드를 어떻게 수정합니까?

+0

[Android 승인은 내가 선언 한 경우에도 작동하지 않습니다] (http://stackoverflow.com/questions/32635704/android-permission-doesnt-work-even-if-i-have-declared) -it) –

+0

'file.delete()'코드를 계속하기 전에 반환 값을 확인하십시오. – greenapps

답변

3

Android M 용으로 개발 중이십니까? Andorid M의 경우 런타임에 권한을 가져야합니다.

here을 확인하십시오.

"Android M 런타임 사용 권한"을 검색하면 수천 개의 예와 설명을 찾을 수 있습니다.

+0

고마워요. 그것이 문제였습니다. 이제 해결했습니다. –