android情景模式
㈠ Android 情景模式(静音、震动、铃声)如何设置和获取这些状态高手们速来!急!
手动打字解答的,希望可以帮助到你!
我之前也没考虑过这个问题,然后研究了下AudioManager,发现当你的振铃模式发生改变的时候有个广播:(Action:)RINGER_MODE_CHANGED_ACTION
然后他判断的依据是:
public static final int RINGER_MODE_NORMAL
若打开振动设置,则它是振动的。(肯定有响铃,有没有振动要看振动设置.
情况:(1)如果你上一次RINGER_MODE_CHANGED_ACTION触发的时候状态是变为了RINGER_MODE_VIBRATE)那么这次触发有可能是变为RINGER_MODE_SILENT或者RINGER_MODE_NORMAL两种,那就很明显了如果是RINGER_MODE_SILENT,就是没有振动也没有响铃,如果是RINGER_MODE_NORMAL就是有振动又有响铃
(2)如果你上一次RINGER_MODE_CHANGED_ACTION触发的时候状态是变为了RINGER_MODE_SILENT)那么这次触发有可能是变为RINGER_MODE_VIBRATE或者RINGER_MODE_NORMAL两种,那就很明显了如果是RINGER_MODE_VIBRATE,就是只有振动没有响铃,如果是RINGER_MODE_NORMAL就是没有振动只有响铃
public static final int RINGER_MODE_SILENT
振铃模式是静音且不振动。(既没有振动也没有响铃)
public static final int RINGER_MODE_VIBRATE
振铃模式是静音且振动。(只有振动没有响铃)
㈡ 安卓手机如何设置情景模式
安卓手机如何设置情景模式
情景模式的设置大家应当相当熟悉了,但是在Android中如何通过自己的程序进行情景模式的设置呢,情景模式分为多种多种,即可以使用系统自带的,也可以使用自定义的,但是在开发某些程序时,可能需要在程序中更改情景模式,那么此就需要进行情景模式的设置。下面简单介绍一下情况模式的设置方式:
首先获取当前的情景模式:
代码
复制代码 代码如下:
void getInitring(AudioManager audio)
{
//取得手机的初始音量,并初始化进度条
int volume=audio.getStreamVolume(AudioManager.STREAM_RING); //取得初始音量
//取得初始模式,并分别设置图标
int mode=audio.getRingerMode(); //取得初始模式
}
通过此代码,当然需要再加工一下,那么就可以得到当前的情景模式,为以后的设置做一下准备,然后也可能知道要不要再次设置。
设置情景模式一:只声音,无振动:
代码
复制代码 代码如下:
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();
}
设置后系统只有声音,没有振动。
设置情景模式二:即有声音也有振动:
代码
复制代码 代码如下:
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();
}
这样设置后,在发声的时候同时也会有振动提醒。
设置情景模式三:只能振动:
代码
复制代码 代码如下:
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();
}
此设置后只有振动,没有声音:
设置情景模式四:无声无振动:
代码
复制代码 代码如下:
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);
以上为最基本的设置方法,在使用中有许多更复杂的组合都是由此基本的方法组合而成的。
㈢ 安卓手机的情景模式在哪里
手机设置情景模式,操作路径:设定-(我的设备)-声音-情景模式-正常/驾驶/会议/户外/静音/飞行模式(注:部分机器不支持情景模式)。