音频管理器
振动器
手机闹钟服务
接收广播消息
接收系统广播消息
音频管理器
使用Android提供的AudioManager来管理系统音量,或者直接让系统静音。程序中首先要通过getSystemService()方法来获取系统的音频管理器,然后就可以调用AudioManager的方法来控制手机音频了。
获取AudioManager对象之后,就可以调用如下方法来控制手机音频了。
adjustStreamVolume(int streamType, int direction, int flags):调整手机指定类型的声音。三个参数说明如下:
setMode(int mode):设置声音模式,可设置的值有NORMAL、RINGTONE和IN_CALL。
setMicrophoneMute(boolean on):设置是否让麦克风静音。
setRingerMode(int ringerMode):设置手机电话铃声的模式。可支持如下属性值。
RINGER_MODE_NORMAL:正常的手机铃声。
RINGER_MODE_SILENT :手机铃声静音。
RINGER_MODE_VIBRATE:手机振动。
setStreamMute(int streamType, boolean state):将手机的指定类型的声音调整为静音。
setSpeakerphoneOn(boolean on):设置是否打开扩音器。
setStreamVolume(int streamType, int index, int flags):设置手机的指定类型的音量值。
例:使用AudioManager控制手机音频:
AudioTest.java
public class AudioTest extends Activity
{
Button play, up , down;
ToggleButton mute;
AudioManager aManager;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获取系统的音频服务
aManager = (AudioManager)getSystemService(
Service.AUDIO_SERVICE);
// 获取界面中3个按钮和一个ToggleButton控件
play = (Button) findViewById(R.id.play);
up = (Button) findViewById(R.id.up);
down = (Button) findViewById(R.id.down);
mute = (ToggleButton) findViewById(R.id.mute);
// 为play按钮的单击事件绑定监听器
play.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
// 初始化MediaPlayer对象,准备播放音乐
MediaPlayer mPlayer = MediaPlayer.create(AudioTest.this,
R.raw.earth);
// 设置循环播放
mPlayer.setLooping(true);
// 开始播放
mPlayer.start();
}
});
up.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
// 指定调节音乐的音频,增大音量,而且显示音量图形示意
aManager.adjustStreamVolume(
AudioManager.STREAM_MUSIC
, AudioManager.ADJUST_RAISE
, AudioManager.FLAG_SHOW_UI);
}
});
down.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
// 指定调节音乐的音频,降低音量,而且显示音量图形示意
aManager.adjustStreamVolume(
AudioManager.STREAM_MUSIC
, AudioManager.ADJUST_LOWER
, AudioManager.FLAG_SHOW_UI);
}
});
mute.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton source
, boolean isChecked)
{
// 指定调节音乐的音频,根据isChecked确定是否需要静音
aManager.setStreamMute(AudioManager.STREAM_MUSIC
, isChecked);
}
});
}
}
振动器
在某些时候,程序需要启动系统振动器,振动是除了视频、声音之外的另一种“多媒体”,充分利用的系统的振动器会给用户更好的体验。
系统获取Vibrator也是调用Context的getSystemService()方法,接下来就调用Vibrator的方法来控制手机振动了。
Vibrator的使用比较简单,它只有以下几个简单的方法来控制手机的振动。
例:使用Vibrator