无法在某些设备上播放默认通知铃声

Pet*_*ter 7 android android-contentresolver android-notifications

这是我播放铃声通知的代码片段:

Uri u = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(MainActivity.this, u);
r.play();
Run Code Online (Sandbox Code Playgroud)

这似乎在大多数设备上都能正常工作。但是,在三星 S8 和三星 S9 等某些设备上,它不起作用。Logcat 显示:

I/Ringtone: Internal uri : content://settings/system/notification_sound
D/RingtoneManager: getActualDefaultRingtoneUri  type    :2
W/MediaPlayer: Couldn't open content://0@settings/system/notification_sound_cache: 
java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

请注意,相同的代码在三星 S7 上运行良好。

想知道是否有人有任何见解。