2017-11-11 5 views
1

私は、既に選択したトーンのリストから着信音をランダムに設定するアプリケーションを開発しています。Android Mのコードで着信音を設定できませんM

私のコードはAndroid N以上で動作しますが、私はAndroid M以下の問題に直面しています。私は解決策をたくさん探してきました。しかし、何も見つけることができませんでした。

ここに着信音を設定しているコードスニペットがあります。

RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), 
           RingtoneManager.TYPE_RINGTONE, 
           uri); 

ここにはlink to entire fileがあります。

ここに私のマニフェストファイルがあります。ここで

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

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

<?xml version="1.0" encoding="utf-8"?> 

は、アプリケーションが、私はこの問題を解決してください
11-11 09:09:32.914 3292-3292/? W/Binder_1: type=1400 audit(0.0:32): avc: denied { read } for path="/storage/emulated/0/iphone6.mp3" dev="fuse" ino=23 scontext=u:r:system_server:s0 tcontext=u:object_r:fuse:s0 tclass=file permissive=0 
11-11 09:09:32.935 1611-3697/system_process E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 336) 
11-11 09:09:32.935 1611-3697/system_process I/ActivityThread: Removing dead content provider:[email protected] 
11-11 09:09:32.937 1611-3697/system_process W/ActivityManager: unstableProviderDied: caller 1000 says ContentProviderConnection{ca0b2f/com.android.externalstorage/.ExternalStorageProvider->1611:system/1000 s0/0 u1/1 +23ms} died, but we don't agree 
11-11 09:09:32.934 3292-3292/? W/Binder_1: type=1400 audit(0.0:33): avc: denied { read } for path="/storage/emulated/0/iphone6.mp3" dev="fuse" ino=23 scontext=u:r:system_server:s0 tcontext=u:object_r:fuse:s0 tclass=file permissive=0 
11-11 09:09:32.954 1611-3697/system_process E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 336) 
11-11 09:09:32.954 1611-3697/system_process W/MediaPlayer: Couldn't open file on client side; trying server side: java.io.FileNotFoundException: Failed opening content provider: content://com.android.externalstorage.documents/document/primary%3Aiphone6.mp3 
11-11 09:09:32.963 1611-3697/system_process W/ActivityManager: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from (null) (pid=1328, uid=1013) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS 
11-11 09:09:32.964 1328-1680/? E/MediaPlayerService: Couldn't open fd for content://com.android.externalstorage.documents/document/primary%3Aiphone6.mp3 
11-11 09:09:32.965 1611-3697/system_process E/MediaPlayer: Unable to create media player 
11-11 09:09:32.965 1611-3697/system_process D/Ringtone: Problem opening; delegating to remote player 
11-11 09:09:32.954 3293-3293/? W/Binder_2: type=1400 audit(0.0:34): avc: denied { read } for path="/storage/emulated/0/iphone6.mp3" dev="fuse" ino=23 scontext=u:r:system_server:s0 tcontext=u:object_r:fuse:s0 tclass=file permissive=0 

を実行中に発生したエラーログです。ありがとうございます。

私はどのように取得するために検索しましたandroid.permission.MANAGE_DOCUMENTS許可。私が集めたのは、セキュリティレベルがsignatureであり、アンドロイドに付属のアプリケーションだけがその許可を得ることができるということです。

答えて

0

私はrequires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS を見ることができるし、また、あなたが、私はすでに許可を追加しようとしたものを許可

+0

のランタイム許可を使用する必要がありますここで正しく をあなたのエラーを確認してください。この問題は、引き継ぎを取得した後も依然として続く。 –

関連する問題