Troubles spille av lyd i stille modus på Android

stemmer
3

Jeg skriver en Android-applikasjon for å bare spille en alarm ingen mater hvilken modus telefonen selv om det er i stille modus.

Jeg fant dette spørsmålet og brukte koden fra svaret å overstyre gjeldende volum tilstand. Koden min ser slik ut:

Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    if (alert == null){
        // alert is null, using backup
        alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        if (alert == null){
            // alert backup is null, using 2nd backup
            alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
    }
}
ringtone = RingtoneManager.getRingtone(getApplicationContext(), alert);

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int volume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
if(volume == 0){
    volume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
}
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, volume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);

if(ringtone != null){
    ringtone.play();
}

Ved debugging virker det som mitt problem starter i denne linjen:

int volume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);

siden telefonen min ser ut til å returnere 4 når den er i stille modus og 7 når den er på maks volum. Jeg vet ikke om dette er, hva det er ment å gå tilbake. Jeg bare antok at hvis telefonen er i stille modus det ville returnere 0.

Noen som kan peke meg i riktig retning?

Publisert på 22/03/2013 klokken 16:54
kilden bruker
På andre språk...                            


1 svar

stemmer
5

Besvart spørsmålet selv, bruke mer tid på å lese dokumentasjonen i dybden.

Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    if (alert == null){
        // alert is null, using backup
        alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        if (alert == null){
            // alert backup is null, using 2nd backup
            alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
    }
}
ringtone = RingtoneManager.getRingtone(getApplicationContext(), alert);

etter innstilling av ringetone jeg måtte sette strømmen type for ringetone:

    ringtone.setStreamType(AudioManager.STREAM_ALARM);
Svarte 27/03/2013 kl. 14:13
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more