Android震动---启动、循环、取消控制

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Sean_css/article/details/51168273

今天在做闹钟Demo的时候,想加上闹钟到期提醒的时候实现震动功能,就上网大概查了下Android中震动的相关资料,总体来说还是蛮简单的。

Android中的Vibrator 类负责对手机震动的处理

导包:import android.os.Vibrator;
加权限:<uses-permission android:name="android.permission.VIBRATE" />

先大概介绍下常用的几个方法:

方法 描述
public void cancel() 取消震动
public boolean hasVibrator() 判断当前是否在震动
public void vibrate(long[] pattern, int repeat) 设置震动周期,如果repeat为-1则不循环震动,0表示一直震动
public void vibrate(long milliseconds) 打开震动,设置震动时长,1000为1秒

1、首先要获取到Vibrator的实例,这个和获取AlarmManger比较类似,获取系统服务,代码如下:

    private Vibrator vibrator=null;
    vibrator = ( Vibrator ) getApplication().getSystemService(Service.VIBRATOR_SERVICE);

2、开启震动,这里有两个方式,在上面给出,一个参数(不能设置循环)、多个参数(可设置循环)

vibrator.vibrate(1000);//震动一秒
//long型数组内的数组依次表示:等待1秒、震动2秒、等待3秒、震动4秒,0表示无限循环long型数组内定义的震动规则;如果是-1则表示不循环震动
vibrator.vibrate( new long[]{1000,2000,3000,4000},0);

需要说明的是,不管后边的是0、1、2、3等,都会先把Long型数组内的震动模式执行一遍,之后,如果是2,则表示把第一遍执行完之后把1000移除,循环{2000,3000,4000}这样,只不过是模式变为震动、等待、震动。。。

3、取消震动

//取消该实例的震动
vibrator.cancel(); 

最后大家不要忘了加上相应的权限,还有记得运行的时候不要忘了在真机上运行,模拟器不支持震动。

展开阅读全文

没有更多推荐了,返回首页