0

如何播放“正面”警报声?我知道怎么玩默认的...

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());
    }
4

2 回答 2

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 的样子,应该能够将默认设置为“正”。

于 2012-01-05T12:42:09.020 回答
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());
}
于 2012-04-26T08:20:17.183 回答