我如何玩'#34;肯定"闹铃声?我知道怎么玩默认的......
Ringtone ringtone = RingtoneManager.getRingtone(getApplicationContext(), RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM));
if (ringtone != null) {
ringtone.play();
}
编辑: 尝试下面但光标只返回相同的uri ???
RingtoneManager rm = new RingtoneManager(getApplicationContext());
rm.setType(RingtoneManager.TYPE_ALARM);
Cursor c = rm.getCursor();
c.moveToFirst();
if (!c.isAfterLast()) {
do {
int uriIndex = c.getInt(RingtoneManager.URI_COLUMN_INDEX);
Uri ring = rm.getRingtoneUri(uriIndex);
Log.d("TC", ring.toString());
} while (c.moveToNext());
}
答案 0 :(得分:1)
RingtoneManager.getCursor()函数提供了一个游标,可以让你遍历所有铃声,你可以检查铃声标题的匹配名称。返回的uri取决于存储铃声的位置,但一旦找到正确的铃声,您可以将uri保存为首选项。我有的代码(使用偏好)没有做任何非常花哨的事情:
Uri alert;
String alarmname = mPrefs.getString(getString(R.string.pref_sound_key, null);
if (alarmname != null && !alarmname.equals(""))
alert = Uri.parse(alarmname);
在其他地方你可以使用铃声首选项来保存用户选择,并且一旦你弄清楚了uri的样子,你应该可以将默认值设置为“肯定”。
答案 1 :(得分:0)
RingtoneManager.URI_COLUMN_INDEX是一个TEXT列。
RingtoneManager rm = new RingtoneManager(getApplicationContext());
rm.setType(RingtoneManager.TYPE_ALARM);
Cursor c = rm.getCursor();
c.moveToFirst();
if (!c.isAfterLast()) {
do {
int uriString = c.getString(RingtoneManager.URI_COLUMN_INDEX);
Log.d("TC", uriString);
} while (c.moveToNext());
}