Android 应用开发实例之情景模式

2013-07-01

Android 应用开发实例

1. 情景模式

使用TabHost来实现主界面的布局。

设置一组RadioButton来切换不同的情景模式。

对比普通情景模式定时情景模式需要加上一个TimPicker来显示并设置时间。

自定义情景模式需要自己定义声音的大小。

调节声音的大小、静音、振动等。

// 获得一个AudioManager对象

AudioManager audioMgr = Context.getSystemService(Context.AUDIO_SERVICE);

// AudioManager常量

AUDIO_LOWER

AUDIO_RAISE

AUDIO_SAME

EXTRA_RINGER_MODE

EXTRA_VIBRATE_SETTING

EXTRA_VIBRATE_TYPE

FLAG_PLAY_SOUND

FLAG_VIBRATE

MODE_INVALID

MODE_IN_CALL

MODE_NORMAL

MODE_RINGTONE

// AudioManager方法

adjustVolume

getMode

getRingerMode

getStreamMaxVolume

isSpeakerPhoneOn

loadSoundEffects

playSoundEffect

setMicroPhoneMute

setMode

setRingerMode

setSpeakerPhoneOn

setVibrateSetting

// 设置铃声+振动

audioMgr.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

audioMgr.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);

audioMgr.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_ON);

// 设置静音模式

audioMgr.setRingerMode(AudioManager.RINGER_MODE_SILENT);

audioMgr.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);

audioMgr.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);

// 注册一个定时器

AlarmManager.set(int type, long triggerAtTime, PendingIntent operation);

// 得到一个PendingIntent

PendingIntent.getActivity(Context, int, Intent, int);

PendingIntent.getBroadcast(Context, int, Intent, int);

PendingIntent.getService(Context, int, Intent, int);

// 创建并注册一个定时器

public void ring() {

  Intent it = new Intent(RingBroadcastReceiver.RING_CHANGED);

  it.putExtra(“checkedId”, R.id.ring02);

  PendingIntent pIt = PendingIntent.getBroadcast(this, RingBroadcastReceiver.REQUEST_CODE, it, 0);

  alarmMgr.set(AlarmManager.RTC_WAKEUP, getTime(), pIt);

}

// 创建广播接收器

public class RingBroadcastReceiver extends BroadcastReceiver {

  public void onReceiver(Context context, Intent it) {   

  }

}

// 处理UI事件

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup02);

radioGroup.setOnCheckedChangeListener(new OnCheckedChangedListener() {

  public void onCheckedChanged(RadioGroup group, int checkedId) {

  }

});

// 在Manifest文件中注册广播接收器

<receiver android:name=”RingBroadcastReceiver”>

  <intent-filter>

    <action android:name=”com.example.ring.RingProfile.RV_CHANGED” />

    <action android:name=”com.example.ring.RingProfile.RING_CHANGED” />

    <action android:name=”com.example.ring.RingProfile.VIBRATE_CHANGED” />

    <action android:name=”com.example.ring.RingProfile.SILENT_CHANGED” />

  </intent-filter>

</receiver>

原文地址:https://www.cnblogs.com/fengzhblog/p/3166076.html