2016-11-30 16 views
0

アンドロイド版> = 6のAndroidアプリでファイルをダウンロードする際に問題があります。マシュマロのAndroidストレージの許可

他のバージョンでもうまく動作しますが、Android 6以降で開くとクラッシュして終了します。

java.lang.IllegalStateException: Unable to create directory: /storage/emulated/0/MP3 BOX at android.app.DownloadManager$Request.setDestinationInExternalPublicDir(DownloadManager.java:538) at com.org.software.myproject.common.adapters.DataAdapter$1.onClick(DataAdapter.java:87) at android.view.View.performClick(View.java:5198) at android.view.View$PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

私はここから他のソリューションに応じて、以下でしたが、それはうまくdidntは:私は次のエラーを取得する

」を

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu_main, menu); 

    // Associate searchable configuration with the SearchView 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

    return true; 
} 
public boolean isStoragePermissionGranted() { 
    if (Build.VERSION.SDK_INT >= 23) { 
     if (checkSelfPermission(WRITE_EXTERNAL_STORAGE) 
       == PackageManager.PERMISSION_GRANTED) { 
      //Permission granted 
      return true; 
     } else { 

      //Permission invoked 
      ActivityCompat.requestPermissions(this, new String[]{WRITE_EXTERNAL_STORAGE}, 1); 
      return false; 
     } 
    } 
    else { //permission is automatically granted on sdk<23 upon installation 
     //Permission granted 
     return true; 
    } 
}' 
+0

https://stackoverflow.com/questions/32635704/android-permission-doesnt-work-even-if-i-have-declared-it – CommonsWare

+0

私はそれを試みましたが、それは仕事をしませんでした、なぜ私は知らないのですか?私はここに全体のコードを投稿することができますが、私はこの部分にいくつかの問題があると思います –

答えて

0

イムかなり新しいですアンドロイドアプリを書くことに間違いがあるかもしれませんが、このエラーをonCreateに入れてください:

ActivityCompat.requestPermissions(MainActivity.this, 
       new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 
       1); 

あなたはまた、マニフェストに使用の許可の行を追加する必要があります。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

・ホープこのことができます!

+0

ありがとうたくさん...しかし、今私は新しい問題に直面して..私は検索のたびに、またはファイルをダウンロードしたいアクセス許可の通知を受け取ります。 –

+0

ええと...私はあなたが持っているif文の中で私が返答したコードを入れようとします。ファイルをダウンロードしようとする前に呼び出されている限り動作します。 onCreateのif文を呼び出す必要があります。 –

関連する問題