Kontrol af strømvolumener i dine Android-apps

Har du nogensinde spillet et spil på din Android-telefon og opdaget, at brug af lydstyrke-switch til tider kontrollerede lydstyrken på appen, mens andre gange justerede lydstyrken på ringetonen? Jeg har. Faktisk er jeg flov over at indrømme, at jeg tidligt i min Android-karriere frigav apps til markedet med denne mangel. Heldigvis er løsningen på denne temmelig almindelige UX faux pas kort og sød.

Denne tutorial demonstrerer en simpel teknik til at tildele hardware-rocker-switch til en bestemt lydstrøm under varigheden af ​​en enkelt aktivitet. Du kan følge med eller downloade hele projektet.

1. Opret et nyt projekt i Eclipse målrettet mod Android 1.6 eller nyere. Sørg for at omdøbe den automatisk oprettede aktivitet til Main.java.

2. I mappen / res / layout tilføjes et layout af radioknapper til hovedbrugergrænsefladen.

 main.xml 

"1.0" encoding = "utf-8" ?>

"Http://schemas.android.com/apk/res/android"

android: layout_width = "fill_parent"

android: layout_height = "fill_parent"

android: orientering = "lodret" >

android: layout_width = "fill_parent"

android: layout_height = "wrap_content"

android: text = "Volume Control Stream Demo" />

android: layout_width = "fill_parent"

android: layout_height = "wrap_content"

android: orientering = "lodret"

android: id = "@ + id / radio_buttons" >

"@ + Id / ringetone"

android: layout_width = "fill_parent"

android: layout_height = "wrap_content"

android: paddingLeft = "40dip"

android: text = "Ringer" />

"@ + id / medier"

android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: paddingLeft = "40dip"

android: text = "Media" />

"@ + Id / voice"

android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: paddingLeft = "40dip"

android: text = "Stemme" />

"@ + Id / alarm"

android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: paddingLeft = "40dip"

android: text = "Alarm" />

3. Nu flytter vi til mappen / src og udlæser Main.java. Vi tilslutter ændringsbegivenheden til vores radiogruppe og ringer et enkelt opkald til Android's Audio Manager for at binde rocker-kontakten til en bestemt lydstrøm. Du kan få en liste over de mulige lydstrømme fra den officielle dokumentation for AudioManager-klassen.

 Main.java- pakke com.authorwjf.say_what; 
 import android.app.Aktivitet; import android.media.AudioManager; import android.os.Bundle; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; 
 public class Main udvider aktivitetsredskaber OnCheckedChangeListener { 

/ ** Ringes op, når aktiviteten først oprettes. * /

@Override

public void onCreate (Bundle gemtInstanceState) { super .onCreate (gemtInstanceState);

setContentView (R.layout. main );

RadioGroup rg = (RadioGroup) (findViewById (R.id. Radio_buttons ));

rg.setOnCheckedChangeListener ( dette ); }
 @Override offentligt tomrum påCheckedChanged (RadioGroup rg, int- knap) { switch (knap) { sag R.id. alarm : 

setVolumeControlStream (AudioManager. STREAM_ALARM );

pause ; sag R.id. medier :

setVolumeControlStream (AudioManager. STREAM_MUSIC );

pause ; sag R.id. ringetone :

setVolumeControlStream (AudioManager. STREAM_RING );

pause ; sag R.id. stemme :

setVolumeControlStream (AudioManager. STREAM_VOICE_CALL );

pause ;

}

}

}

Vi skal være parate til at prøve koden. Ilæg blot APK til en enhed eller en emulator, skift en af ​​radioknapperne, og skru lydstyrken op eller ned (på emulatoren kan dette gøres ved hjælp af Ctrl-F5 og Ctrl-F6).

Temmelig smertefri, ikke? Jeg foreslår, at du tager et øjeblik for at initialisere lydstyrkekontrolstrømmen i alle dine aktiviteter, der bruger Android-lydundersystemet. Dine brugere vil takke dig . Figur A

© Copyright 2021 | pepebotifarra.com