使用Ringtone Manager避免android中的系统铃声
我正在使用使用Ringtone Manager避免android中的系统铃声,android,Android,我正在使用RingtoneManager获取铃声,它会返回包括系统铃声在内的所有铃声。如何仅获取存储在sd卡上且不是系统默认铃声的铃声 这是我的铃声提取器类的代码 public class RingtoneHelper { public static List<Ringtone> fetchAvailableRingtones(Context context){ List<Ringtone> ringtones = new ArrayList&
RingtoneManager
获取铃声,它会返回包括系统铃声在内的所有铃声。如何仅获取存储在sd卡上且不是系统默认铃声的铃声
这是我的铃声提取器类的代码
public class RingtoneHelper {
public static List<Ringtone> fetchAvailableRingtones(Context context){
List<Ringtone> ringtones = new ArrayList<>();
RingtoneManager mgr = new RingtoneManager(context);
mgr.setType(RingtoneManager.TYPE_RINGTONE);
int n = mgr.getCursor().getCount();
for(int i=0;i<n;i++){
ringtones.add(mgr.getRingtone(i));
}
return ringtones;
}
public static void changeRingtone(Context context){
SharedPreferences preferences = context.getSharedPreferences("randomizer", Context.MODE_PRIVATE);
if(!preferences.getBoolean("active", false))
return;
RingtoneManager mgr = new RingtoneManager(context);
Random random = new Random(System.currentTimeMillis());
int n = random.nextInt(mgr.getCursor().getCount());
RingtoneManager.setActualDefaultRingtoneUri(context,
RingtoneManager.TYPE_RINGTONE, mgr.getRingtoneUri(n));
}
}
公共类铃声帮助器{
公共静态列表fetchAvailableRingtones(上下文){
列表铃声=新的ArrayList();
RingtoneManager mgr=新的RingtoneManager(上下文);
经理设置类型(铃声管理器类型\铃声);
int n=mgr.getCursor().getCount();
对于(int i=0;i