android情景模式切换

情景模式的设置大家应当相当熟悉了,但是在Android中如何通过自己的程序进行情景模式的设置呢,情景模式分为多种多种,即可以使用系统自带的,也可以使用自定义的,但是在开发某些程序时,可能需要在程序中更改情景模式,那么此就需要进行情景模式的设置。下面简单介绍一下情况模式的设置方式:

首先获取当前的情景模式:

 

1
2
3
4
5
6
7
void getInitring(AudioManager audio)
    {
          //取得手机的初始音量,并初始化进度条
        int volume=audio.getStreamVolume(AudioManager.STREAM_RING);  //取得初始音量
        //取得初始模式,并分别设置图标
        int mode=audio.getRingerMode();  //取得初始模式
    }

  

 

通过此代码,当然需要再加工一下,那么就可以得到当前的情景模式,为以后的设置做一下准备,然后也可能知道要不要再次设置。

 

设置情景模式一:只声音,无振动:

 

1
2
3
4
5
6
7
8
void ring(AudioManager audio) {
      audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
      audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
              AudioManager.VIBRATE_SETTING_OFF);
      audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
              AudioManager.VIBRATE_SETTING_OFF);
      Toast.makeText(this, "设置成功!当前为铃声", Toast.LENGTH_LONG).show();
  }

  

 

设置后系统只有声音,没有振动。

 

设置情景模式二:即有声音也有振动:

 

1
2
3
4
5
6
7
8
void ringAndVibrate(AudioManager audio) {
      audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
      audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
              AudioManager.VIBRATE_SETTING_ON);
      audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
              AudioManager.VIBRATE_SETTING_ON);
      Toast.makeText(this, "设置成功!当前为铃声加振动", Toast.LENGTH_LONG).show();
  }

  

 

 

这样设置后,在发声的时候同时也会有振动提醒。

 

设置情景模式三:只能振动:

 

1
2
3
4
5
6
7
8
9
void vibrate(AudioManager audio) {
        audio.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
                AudioManager.VIBRATE_SETTING_ON);
        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
                AudioManager.VIBRATE_SETTING_ON);
        Toast.makeText(this, "设置成功!当前为振动", Toast.LENGTH_LONG).show();
    }

  

 

此设置后只有振动,没有声音:

 

设置情景模式四:无声无振动:

 

1
2
3
4
5
6
7
8
void noRingAndVibrate(AudioManager audio) {
       audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
       audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
               AudioManager.VIBRATE_SETTING_OFF);
       audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
               AudioManager.VIBRATE_SETTING_OFF);
       Toast.makeText(this, "设置成功!当前为无声无振动", Toast.LENGTH_LONG).show();
   }

  

 

设置后系统没有声音和振动。无法进行相应的提示。

 

以上所有设置的声音均为系统默认的声音大小,那么我们是否可以自定义声音的大小呢,答案是当然可以。要设置声音的大小 ,需要设置以下函数:

提高音量:

 

audio.adjustVolume(AudioManager.ADJUST_RAISE, 0);

 

减小音量:

 

 

audio.adjustVolume(AudioManager.ADJUST_LOWER, 0);

 

以上为最基本的设置方法,在使用中有许多更复杂的组合都是由此基本的方法组合而成的。

 

 

posted @   wang_xiaohao  阅读(332)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示