Android-Vibrator及VibrationEffect

作者: 古舟咕咕 | 来源:发表于2019-02-15 09:05 被阅读14次

前言

我们在Android开发中经常会用到Vibrator类,这是用来让手机振动的一个类。下面我们就来看一下Vibrator类以及在Android8.0中新增的VibrationEffect类的详解吧。

一、Vibrator类详解

在API级别1(Android1.0)中添加

1、基本概念

在设备上操作振动器的类。
如果您的进程退出,您启动的任何振动都将停止。
必须使用带有Vibrator.class参数的Context.getSystemService(Class)或带有Context.VIBRATOR_SERVICE参数的Context.getSystemService(String)来获取此类的实例。

2、公共方法

  • cancel
    在API级别1(Android1.0)中添加
    public abstract void cancel ()
    关闭振动器。
    需要VIBRATE权限。

  • hasAmplitudeControl
    在API级别26(Android8.0)中添加
    public abstract boolean hasAmplitudeControl ()
    检查振动器是否有振幅控制。
    返回值:Boolean
    如果硬件可以控制振动的幅度,则为true,否则为false。

  • hasVibrator
    在API级别11(Android3.0)中添加
    public abstract boolean hasVibrator ()
    检查硬件是否有振动器。
    返回值:Boolean
    如果硬件有振动器,则为true,否则为false。

  • vibrate
    在API级别1(Android1.0)中添加
    public void vibrate (long milliseconds)
    此方法在API级别26(Android8.0)中已弃用。
    使用vibrate(VibrationEffect)来代替。

    在指定的时间段内不断振动。
    需要VIBRATE权限。
    milliseconds:振动的毫秒数。

  • vibrate
    在API级别26(Android8.0)中添加
    public void vibrate (VibrationEffect vibe)
    需要VIBRATE权限。
    vibe:VibrationEffect

  • vibrate
    在API级别1(Android1.0)中添加
    public void vibrate (long[] pattern, int repeat)
    此方法在API级别26(Android8.0)中已弃用。
    使用vibrate(VibrationEffect)来代替。

    用给定的模式振动。
    传递一组整数,这些整数是在几毫秒内打开与关闭振动器的持续时间。第一个值表示在打开振动器之前等待的毫秒数。下一个值表示在关闭振动器之前保持振动器开启的毫秒数。之后的值以关闭振动器与打开振动器的持续时间(以毫秒为单位)之间交替。
    要使模式重复下去,请将索引传递到开始重复的模型数组,或用-1以禁用重复。
    需要VIBRATE权限。
    pattern:打开与关闭振动器时间的整数序列。
    repeat:索引到重复的模式,如果你不想重复,则为-1。

  • vibrate
    在API级别21(Android5.0)中添加
    public void vibrate (long[] pattern, int repeat, AudioAttributes attributes)
    此方法在API级别26(Android8.0)中已弃用。
    使用vibrate(VibrationEffect, AudioAttributes)来代替。

    用给定的模式振动。
    传递一组整数,这些整数是在几毫秒内打开与关闭振动器的持续时间。第一个值表示在打开振动器之前等待的毫秒数。下一个值表示在关闭振动器之前保持振动器开启的毫秒数。之后的值以关闭振动器与打开振动器的持续时间(以毫秒为单位)之间交替。
    要使模式重复下去,请将索引传递到开始重复的模型数组,或-1以禁用重复。
    需要VIBRATE权限。
    pattern:打开与关闭振动器时间的整数序列。
    repeat:索引到重复的模式,如果你不想重复,则为-1。
    attributes:AudioAttributes对应振动。例如,为报警振动指定AudioAttributes.USAGE_ALARM,或为与来电相关的振动指定AudioAttributes.USAGE_NOTIFICATION_RINGTONE

  • vibrate
    在API级别26(Android8.0)中添加
    public void vibrate (VibrationEffect vibe, AudioAttributes attributes)
    需要VIBRATE权限。
    vibe:VibrationEffect
    attributes:AudioAttributes

  • vibrate
    在API级别21(Android5.0)中添加
    public void vibrate (long milliseconds, AudioAttributes attributes)
    此方法在API级别26(Android8.0)中已弃用。
    使用vibrate(VibrationEffect, AudioAttributes)来代替。

    milliseconds:振动的毫秒数。
    attributes:AudioAttributes对应振动。例如,为报警振动指定AudioAttributes.USAGE_ALARM,或为与来电相关的振动指定AudioAttributes.USAGE_NOTIFICATION_RINGTONE

二、VibrationEffect类详解

在API级别26(Android8.0)中添加

1.基本概念

VibrationEffect描述了由振动器执行的触觉效果。这些效果可能是任何数量的因素,从单发振动到复杂波形。

2.常量

  • DEFAULT_AMPLITUDE
    在API级别26(Android8.0)中添加
    public static final int DEFAULT_AMPLITUDE
    设备的默认振动强度。
    常数值:-1(0xffffffff)

3.公共方法

  • createOneShot
    在API级别26(Android8.0)中添加
    public static VibrationEffect createOneShot (long milliseconds, int amplitude)
    创建一次性振动。一次性振动将以指定的振幅在指定的时间段内持续振动,然后停止。
    milliseconds:振动的毫秒数。这必须是一个正数。
    amplitude:振动的强度。它必须是1到255之间的值,或DEFAULT_AMPLITUDE
    返回值:VibrationEffect
    期望的效果。

  • createWaveform
    在API级别26(Android8.0)中添加
    public static VibrationEffect createWaveform (long[] timings, int[] amplitudes, int repeat)
    创建波形振动。波形振动是可能重复的一系列时序序列和振幅序列。对于每个序列,振幅序列中的值确定振动的强度,时序序列中的值确定振动的时间长度。振幅为0意味着没有振动(即关闭),并且将忽略时序值为0的任何序列。
    要使模式重复下去,请将索引传递到开始重复的时序数组,或-1以禁用重复。
    timings:交替开关时间的模式,从关闭开始。值为0将导致忽略时序 / 幅度序列。
    amplitude:振动的强度。它必须是1到255之间的值,或DEFAULT_AMPLITUDE
    repeat:索引到重复的模式,如果你不想重复,则为-1。
    返回值:VibrationEffect
    期望的效果。

  • createWaveform
    在API级别26(Android8.0)中添加
    public static VibrationEffect createWaveform (long[] timings, int repeat)
    创建波形振动。波形振动是可能重复的一系列时序序列和振幅序列。对于每个序列,振幅序列中的值确定振动的强度,时序序列中的值确定振动的时间长度。振幅为0意味着没有振动(即关闭),并且将忽略时序值为0的任何序列。
    生成波形的振幅序列与给定时序序列的大小相同,交替值为0(即关闭)和DEFAULT_AMPLITUDE,从0开始。因此,第一个时序值将是打开振动器之前要等待的时间,第二个值是在DEFAULT_AMPLITUDE强度下振动多长时间等。
    要使模式重复下去,请将索引传递到开始重复的时序数组,或-1以禁用重复。
    timings:交替开关时间的模式,从关闭开始。值为0将导致忽略时序 / 幅度序列。
    repeat:索引到重复的模式,如果你不想重复,则为-1。
    返回值:VibrationEffect
    期望的效果。

  • describeContents
    在API级别26(Android8.0)中添加
    public int describeContents ()
    描述此Parcelable实例的封送表示中包含的特殊对象的种类。例如,如果对象将在writeToParcel(Parcel,int)的输出中包含文件描述符,则此方法的返回值必须包含CONTENT_FILE_DESCRIPTOR位。
    返回值:int
    一个位掩码,指示由此Parcelable对象实例封送的特殊对象类型集。

相关文章

  • Android-Vibrator及VibrationEffect

    前言 我们在Android开发中经常会用到Vibrator类,这是用来让手机振动的一个类。下面我们就来看一下Vib...

  • 及风及影,及我及你 及漫天风雪,及山间花雨 及暮鼓晨钟,及尘埃落定 及落叶纷纷,及星云

  • 概率统计

    期望及性质 方差及性质 矩 协方差及性质 解释:

  • 传统纹身图案及水花素材

    传统纹身图案及水花素材 传统纹身图案及水花素材 传统纹身图案及水花素材 传统纹身图案及水花素材 传统纹身图案及水花...

  • 爱不可及

    爱不可及。 不可 及

  • 及远,及近

    看天光云影 能测阴晴雨雪 但难逾目力所及 打开电视 可知全球天气 缺少了静观云卷云舒的乐趣 漫步林间 常看草长莺飞...

  • 可及不可及

    余秋雨曾言:人类最爱歌颂和赞美的是初恋,但在那个说不清算是少年还是青年的年岁,连自己是谁还没有搞清,怎能完成...

  • day2

    JQuery 查找 显示隐藏及切换 滑动及切换 淡入、淡出及切换 案例 轮播

  • 学习小组-晓光-Day4

    R语言初上手 下载及安装R及Rstudio 了解Rstudio 了解Rstudio的界面及字体设置 用plot及b...

  • 始料未及,跟父亲说了之后,事情变得尖锐起来,早点看清困难是应该的吧,昨日深夜思考良久,仍是得不出个答案,我是否愿意...

网友评论

    本文标题:Android-Vibrator及VibrationEffect

    本文链接:https://www.haomeiwen.com/subject/btaueqtx.html