내 앱에서 SD 카드에 저장 한 사운드에서 벨소리를 설정하려고합니다. 이 글에서 발견 할 수있는 모든 게시물을 살펴본 후에 나는 내가 가깝고 URI의 권리를 정의하지 않는다고 믿는다.Android : SD 카드에서 사운드를 벨소리로 설정
File ringPath = new File(path, filename);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, ringPath.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "temptitle");
values.put(MediaStore.MediaColumns.SIZE, ringPath.length());
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");
values.put(MediaStore.Audio.Media.ARTIST, "tempartist");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
uri = Uri.fromFile(ringPath);
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, uri);
은 일반적으로 URI 더 같이 정의된다 :
Uri uri = MediaStore.Audio.Media.getContentUriForPath(ringPath.getAbsolutePath());
Uri newUri = main.getContentResolver().insert(uri, values);
그러나 나는 확실히 그 모두에 포인트를 보지 않았고, 그들이 가능성이있는 사람이 아닙니까 것을 (나에게 오히려 불쾌한 오류를 준 내 현재보다 나쁜). 그게 꼭 필요한 방법이라고 확신하지만 코드에있는 uri가 실제로 올바른 경로를 반환합니다 (그리고 다른 하나는 오용으로 인해 부여 된 것입니다). 작업. 솔직히 말해서 경로를 지정하는 대신에 어쨌든 URI를 사용해야한다는 점을 알지 못합니다.
아무도 나에게 약간의 설명을 주거나 어딘가에서 나를 연결할 수 있다면, 나는 이것을 정말로 이해할 수 있고이 문제를 해결할 수있어서 매우 감사 할 것입니다.
응용 프로그램에 부여 된 사용 권한은 무엇입니까? 앱에 SD 카드에 대한 액세스 권한이 있는지 확인해야합니다. – SpencerElliott
외부 저장소에 쓸 수있는 권한을 부여했으며 SD 카드에 사운드를 저장할 수 있으므로 제대로 설정되었음을 알고 있습니다. 나는 카드에서 읽는 데 필요한 모든 권한이 있다고 생각하지 않으며, 확인을 위해 단지 두 번 확인했습니다. – Peacecraft