安卓 : Setting a sound from SD card as Ringtone

标签 android path audio uri ringtone

我正在尝试根据我在应用程序中保存到 SD 卡上的声音来设置铃声。在浏览了我能找到的所有关于此的帖子后,我相信我已经接近了,只是没有定义 URI 的权利。

       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 而不是指定路径有什么意义。

如果有人能给我一些解释,或者将我链接到某个地方,这样我就能真正理解这一点并解决这个问题,我将非常感激。

最佳答案

通过进入菜单->设置->应用程序->开发关闭手机调试然后取消选中该框。很高兴。

关于安卓 : Setting a sound from SD card as Ringtone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4894221/

相关文章:

java - 反向播放,java

java - 如果应用程序有多个登录(例如 Facebook、Google 和 Web 服务登录),如何在 Android 中管理 session

android - 等待 TextToSpeech onInit() 初始化

vba - 使用宏获取路径时出错

batch-file - 管理带有重音字符的路径

android - AudioTrack:从一个线程开始调用

cocoa - 读取 Cocoa 中的音频输入电平峰值

java - 不支持 Path.isConvex。 Android Studio - 切换按钮

android - sparsearray 和 sparsearraycompat 之间的区别

python - 在 Python 中确保可靠路径的最佳方法是什么?