기본적으로 제목에 모두 나와 있습니다. phonestatelistener 클래스에서 현재 재생중인 벨소리를 검색 할 수 있기를 원합니다. 한 가지 해결책은 단순히 RingtoneManager에서 DEFAULT URI를 검색하는 것일 수 있지만 사용자 지정 연락처 벨소리가 재생되는 경우에는 어떻게해야합니까?PhoneStateListener에서 재생중인 벨소리의 이름을 가져옵니다.
내가 지금까지 시도한 것에 대한 필수적인 코드 스 니펫. 그들 중 누구도 벨소리를 반환하지 않습니다. IsPlaying은 항상 false입니다.
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;
}
또한, 나는 시도했다 : public static final String CUSTOM_RINGTONE
과 관련된 사용자 정의 벨소리에 대한 URI를 가지고 :
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;
}
}
}