Experiment 7 Bindservice Analog communication
Purpose
Enables two-way communication between the start-up and Bindservice
Requirements
1) The implementation of a data transfer from the start side to the Bindservice end;
2) realize the use of Bindservice service to play the music in the project source file;
3) enable the audio volume to be controlled by the "add" and "lower" two buttons on the boot side.
4) The implementation of the "Pause" button to control the audio pause playback on the boot side.
Principle
- Refer to Lesson plans to understand the communication principles of Bindservice and start-up
- Audiomanager's understanding
Audiomanager class is located on Android. Media Pack, this class provides access to control volume and ringtone mode operations.
The Audiomanager instance object is obtained through the Getsystemservice (Context.audio_service) method.
Audiomanager audiomanage = (audiomanager) context.getsystemservice (Context.audio_service);
Audiomanager is the object that we define to control the sound of the system.
Some of the more commonly used methods:
1) adjustvolume (int direction, int flags): Used to control the volume of the phone, when the first parameter passed in is Audiomanager.adjust_lower, you can turn the volume down one unit, incoming AU Diomanager.adjust_raise, you can increase the volume by one unit.
2) Adjuststreamvolume (intstreamtype, int direction, intflags): Adjust phone volume size (in step)
Parameter 1: Sound type, preferably stream_voice_call (call), Stream_system (System sound), stream_ring (ringtone), stream_music (music), Stream_alarm (alarm)
Parameter 2: Adjust the direction of the volume, preferably adjust_lower (lower), adjust_raise (raised), Adjust_same
Parameter 3: Optional flag bit
3) Setstreamvolume (intstreamtype, int index, intflags): Set Volume size directly
4) Getstreamvolume (intstreamtype): Get the current phone volume, the maximum value is 7, the minimum value is 0, when it is 0 o'clock, the phone automatically adjusts the mode to "vibration mode".
5) Setstreammute (Intstreamtype, Boolean State): Mute Set
Some reference codes:
Volume control, initialization definition
Audiomanager Maudiomanager = (audiomanager) getsystemservice (Context.audio_service);
Control the volume increase or decrease in one step, and eject the system default Volume control bar:
Lower the volume, bring up the system volume control
if (flag ==0) {
Maudiomanager. Adjuststreamvolume (Audiomanager.stream_music,audiomanager.adjust_lower,
AUDIOMANAGER.FX_FOCUS_NAVIGATION_UP);
}
Increase volume, bring up the system volume control
ElseIf (flag ==1) {
Maudiomanager. Adjuststreamvolume (Audiomanager.stream_music,audiomanager.adjust_raise,
AUDIOMANAGER.FX_FOCUS_NAVIGATION_UP);
}
Other common methods:
Android Audiomanager Get Volume:
Get the Audiomanager instance first,
Audiomanagermaudiomanager = (Audiomanager) getsystemservice (Context.audio_service);
Call volume
int max = Maudiomanager.getstreammaxvolume (Audiomanager.stream_voice_call);
int current = Maudiomanager.getstreamvolume (Audiomanager.stream_voice_call);
System Volume
int max = Maudiomanager.getstreammaxvolume (Audiomanager.stream_system);
Current = Maudiomanager.getstreamvolume (Audiomanager.stream_system);
Ringtone Volume
max = Maudiomanager.getstreammaxvolume (audiomanager.stream_ring);
Current = Maudiomanager.getstreamvolume (audiomanager.stream_ring);
Music volume
max = Maudiomanager.getstreammaxvolume (audiomanager.stream_music);
Current = Maudiomanager.getstreamvolume (Audiomanager.stream_music);
Prompt for sound volume
max = Maudiomanager.getstreammaxvolume (audiomanager.stream_alarm);
Current = Maudiomanager.getstreamvolume (Audiomanager.stream_alarm);
Maximum volume
Intmaxvolume =maudiomanager.getstreammaxvolume (Audiomanager.stream_music);
Current volume
Intcurrentvolume =maudiomanager.getstreamvolume (Audiomanager.stream_music);
How much to control the volume directly:
|
if (issilent) { Maudiomanager.setstreamvolume (audiomanager.stream_music,0,0); }else{ Maudiomanager.setstreamvolume (audiomanager.stream_music,tempvolume,0);//tempvolume: Absolute Volume } |
Lab Report Requirements
1) write down the steps and contents of the experiment in detail;
2) detailed record of the problems found during the experiment and the method of solving the problem;
3) give the various pages in the process of running the program;
4) Submit documents include: Experimental report, source code, can run the installation program, all files packaging compression;
5) compression Package naming format: Professional + study number + name + experiment 7.rar
"Android" experiment 7 Bindservice Analog communications deadline submission date 2016.5.3