По сути, название говорит обо всем. Я хочу, чтобы можно было получить текущую мелодию звонка в классе phonestatelistener. Одним из решений может быть просто получить DEFAULT URI из RingtoneManager, но что делать, если есть настраиваемая мелодия звонка?Извлечь имя воспроизводящей мелодии звонка в PhoneStateListener
Фрагменты обязательного кода для того, что я пробовал до сих пор. Ни один из них не возвращает рингтон. IsPlaying всегда ложный.
public static String getPlayingRingtone() {
RingtoneManager m = new RingtoneManager(mCtx);
Cursor rings = m.getCursor();
for(int i = 0; i < rings.getCount(); i++) {
Ringtone tone = m.getRingtone(i);
if (tone.isPlaying())
Log.d("Playcallringtone", "**Is playing**" + tone.getTitle(mCtx));
}
return null;
}
Кроме того, я попытался:
Log.d("Playcallringtone", RingtoneManager.getRingtone(mCtx,
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE)).getTitle(mCtx) + " is playing");
Моего Phonestatelistener выглядит следующим образом:
private class MyPhoneStateListener extends PhoneStateListener {
public void onCallStateChanged(int state,String number){
switch(state){
case TelephonyManager.CALL_STATE_IDLE:
// Do stuff for IDLE
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
// Do stuff of OFFHOOK
break;
case TelephonyManager.CALL_STATE_RINGING:
getPlayingRingtone();
// Do stuff for RINGING
break;
}
}
}