参考链接:https://www.jianshu.com/p/7cf9972b4fc6

参考链接:https://blog.csdn.net/zhaoxiaojian1213/article/details/77479417

实现震动,首先要加上使用震动所需的权限,添加在AndroidMainifest.xml

<!-- 添加震动权限 -->
    <uses-permission android:name="android.permission.VIBRATE"/>

直接看代码,复制拿去直接用

public class TipHelp {
     /*
     *  final Activity activity :调用该方法的Activity实例

long milliseconds :震动的时长,单位是毫秒

long[] pattern :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒

boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次
     TipHelper.Vibrate(getActivity(), new long[]{800, 1000, 800, 1000, 800, 1000}, true);
     */
     private static Vibrator vib;
     public static void Vibrate(final Activity activity, long milliseconds) {
          vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
          vib.vibrate(milliseconds);
     }
     
     public static void Vibrate(final Activity activity, long[] pattern, boolean isRepeat) {
          vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
          vib.vibrate(pattern, isRepeat ? 1 : -1);
     }
     
     public static void Vibrate(MainActivity activity, long[] pattern, boolean isRepeat) {
          vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
          vib.vibrate(pattern, isRepeat ? 1 : -1);
            
     }
         /**
         * 停止震动
         */
     public static void stop() {
          vib.cancel();
     }
    //取消震动
     public static void virateCancle(final Activity activity){
             Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
             vib.cancel();
         }
}

在需要的地方可以直接调用:

TipHelper.Vibrate(getActivity(), new long[]{800, 1000, 800, 1000, 800, 1000}, true);

如果想要设置一个震动开关按钮,添加一个标志位来判断震动是否已经开启。

public static Boolean isVirating = false;//声明一个全局静态变量

在开关按钮里改变一下boolean值,我用的是switch控件

sw_zd.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked){
                    isVirating = true;
                }else {
                    //关闭震动
                    if (isVirating) 
                    {
                         isVirating = false;
                         TipHelp.virateCancle(getActivity());
                    }
                }
            }
        });

然后在需要的地方进行一个判断就可以了

if(MeFragment.isVirating){          //MeFragment是声明全局静态变量的类名
                                    TipHelp.Vibrate(getActivity(), new long[]{800, 1000, 800, 1000, 800, 1000}, true);
                                    }

希望能够帮助到别人。

要学的还有很多,加油。

Android 手机震动工具类相关推荐

  1. Android开发:手机震动工具类

    新思路,如果你在做关于通知Notification方便的工作,在涉及到多种通知方式组合时(例如:铃声.轻震动.强震动等),感觉到系统提供的API比较吃力的话,建议可以自己来实现通知效果,根据开发经验, ...

  2. android 手机震动功能吗,Android 手机震动功能实现

    1.首先在AndroidManifest.xml中添加震动权限 2.创建震动工具类 VibratorUtil.java package com.techrare.util; import androi ...

  3. android 获取手机信息工具类

    package com.yqy.yqy_listviewheadview;import android.content.Context; import android.telephony.Teleph ...

  4. Android 手机自动化测试工具有哪几种?

    Android 手机自动化测试工具有哪几种? 3 条评论 分享 按投票排序按时间排序 28 个回答 78赞同 反对,不会显示你的姓名 知乎用户,https://github.com/truebit 孙 ...

  5. Android开发常用工具类集合

    转载自:https://blog.csdn.net/xiaoyi_tdcq/article/details/52902844 Android开发常用工具类集合 android开发中为了避免重复造轮子, ...

  6. android 快速开发工具类,android面试知识点

    项目地址:570622566/FastAndrUtils  简介:android 快速开发工具类 更多:作者   提 Bug   官网 标签: Fastandrutils 是一套整理修改整合的 and ...

  7. Android常用的工具类

    2019独角兽企业重金招聘Python工程师标准>>> 最新最准确内容建议直接访问原文:Android常用的工具类 主要介绍总结的Android开发中常用的工具类,大部分同样适用于J ...

  8. Android使用的工具类

    Android实用的工具类 https://github.com/AbrahamCaiJin/CommonUtilLibrary#获取app应用版本信息--appapplicationmgr

  9. 退出整个Android程序的工具类

    在实际的Android开发过程中常常有退出整个Android程序的需求,下面给大家介绍一下如何编写一个退出整个Android程序的工具类 package com.superGao.exitApp; i ...

最新文章

  1. python中的偏函数
  2. SQL注入——报错注入
  3. VTK:重叠AMR用法实战
  4. Spark学习之路 (五)Spark伪分布式安装
  5. html ie 版本设置密码,如何给IE浏览器设置一个密码的详细图文步骤
  6. 谁说“IT 不理解 OT”?开放自动化来破局!
  7. 导致存储过程重新编译的原因
  8. Cobbler详解(一)——Cobbler基础知识
  9. intellij 出现“Usage of API documented as @since 1.8+”的解决办法
  10. h2事务与mysql_H2数据库事务提交失败
  11. Atitti 模板匹配 Listjava.awt.Point matchTemplate(
  12. JAVA支付宝app端支付以及提现
  13. 计算机应用 2010 成绩,2010西电计算机应用技术考研成绩
  14. creo视图管理器使用方法_5.3 视图管理-样式、截面
  15. 二、JavaWeb动态网页基础
  16. 20条经典触动心灵语录
  17. 十八万字《python从零到精通教程》第二版,贴心保姆教你从零变大神,学不会找我
  18. AM335x片上ecap驱动移植
  19. java arraylist 求和_java-ArrayList中类对象属性的总和
  20. uni-app省市区选择器

热门文章

  1. [I T]越便宜越好? 小米、AK47与盛大你该选谁2
  2. 手残-网络重置后网络适配器全感叹号且各种方法联网失效的问题解决
  3. 免开发打造Zigbee门磁,随时随地监控门窗开合状态
  4. aspen怎么做灵敏度分析_灵敏度分析报告aspen
  5. slashdot网站架构:硬件和软件 zz
  6. weblogic 登录控制台页面很慢
  7. 说英语的思路(狂飙版)
  8. MT6762/处理器参数,helio P22芯片资料介绍
  9. 〖Python自动化办公篇⑥〗- word文件自动化 - word操作与读取word文件
  10. matplotlib绘图工具包--数据可视化