-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

ありがとうございました。それが問題でした。今私はそれを解決しました。 –

関連する問題