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 に答える