zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    tars framework 源码解读(五) framework 部分章节。PropertyServer,StatServer上报统计服务
    tars framework 源码解读(五) framework 部分章节。NotifyServer 通知服务
    mysql之 percona-xtrabackup 2.4.7安装(热备工具)
    年轻
    C语言整型数据(整数)
    【转】想象5年后的你
    MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
    CSS3——前端预处理技术(Less、Sass、CoffeeScript、TypeScript)
    HTML(三)——本地存储
    HTML5(二)——特殊符号、新增属性、表单重写属性、
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3166076.html
Copyright © 2011-2022 走看看