这次客户反应在晚上有任务来时,提示的铃声太大,能不能够做成铃声渐增的,像闹钟一样。之前因为只考虑了铃声不够大,没有去了解到有
些人是在家做事的。晚上来任务时铃声的问题确实会影响到家人的休息。接下来就来看看铃声渐增的做法。
首先我们知道android中控制声音的类为AudioManager,查看了一下API以及网上搜了一下都没有相关的API能够实现声音渐增的功能,所以接
下来就只有一个办法了:在铃声播放的时候,先将音量初始化为较低的数值然后不断的增加音量,这样就能够达到音量渐增的效果。震动功能
很简单,它的接口也很少,相应的地方加入就是了。
铃声渐增功能我是在服务中实现的,铃声开启时,启动服务,初始化音量,间隔提高音量。间隔提高音量的实现思路:在服务启动时创建一个
Handler对象,初始化初始音量,在handleMessage中提高音量并且延迟固定的时间再sendEmptyMessage,实现消息循环,如果音量已经达
到最大值了,则return并且结束服务。
代码实现:
public class VolumeControlService extends Service{
private final static String TAG = "VolumeControlService";
private AudioManager mAudioManager;
private MyHandler mHandler;
private int mMaxVolume;//所增加的音量的最大值,超过这个音量则不再增加
private int mIncreaseVolumeDelay;//音量增加的时间间隔,单位:毫秒
private int mStreamType = -1;//铃声类型
public final static int DEFAULT_DELAY_INTERVAL = 6;//默认的音量增加的时间间隔,单位:秒
@Override
public IBinder onBind(Intent intent){
Log.i(TAG, "onBind");
return null;
}
@Override
public void onCreate(){
super.onCreate();
Log.i(TAG, "onCreate");
mHandler = new MyHandler();
mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE