商城首页欢迎来到中国正版软件门户

您的位置:首页 >10.4 Vibrator(振动器)

10.4 Vibrator(振动器)

  发布于2026-08-12 阅读(0)

扫一扫,手机访问

本节引言:

本节我们介绍的是Vibrator(振动器),是手机自带的振动器,别去百度直接搜针振动器,因为 你的搜索结果可能是如图所示的神秘的道具,或者其他神秘道具:

说回这一节提到的Vibrator,它本质上就是Android提供的一项机身震动服务。前面讲到的Notification其实就能直接用上这个能力,比如收到推送消息时,可以通过震动来做提醒。再比如游戏场景里,这几乎也是标配,像“打飞机”这类游戏,一旦飞机被击爆,往往就会配上一段较长的震动反馈。

下面我们就来写个简单的例子,来熟悉下这个Vibrator的用法!

官方API文档:Vibrator

1.获得Vibrator实例:

Vibrator vb = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE);

2.可以使用的相关方法:

  • abstract void cancel():关闭或者停止振动器
  • abstract boolean hasVibrator():判断硬件是否有振动器
  • void vibrate(long milliseconds):控制手机振动为milliseconds毫秒
  • void vibrate(long[] pattern,int repeat):指定手机以pattern指定的模式振动! 比如:pattern为new int[200,400,600,800],就是让他在200,400,600,800这个时间交替启动与关闭振动器! 而第二个则是重复次数,如果是-1的只振动一次,如果是0的话则一直振动 还有其他两个方法用得不多~ 对了,使用振动器还需要在AndroidManifest.xml中添加下述权限: <uses-permission android:name="android.permission.VIBRATE"/>

3.使用示例:设置频率不同的震动器:

说到 Vibrator,最常见的应用场景,基本就是各种所谓“手机按摩器”类 app。去应用市场里搜一下,这类产品一抓一大把。随便下载几个看一眼就会发现,功能其实都差不多。这么一个小功能,居然也能有 8W 多的下载量……当然,真要说多夸张,好像也未必。不过它们普遍都是靠切换振动频率来实现效果,至于所谓的“按摩”到底有没有实际作用,那就很难下定论了。既然如此,下面不妨自己动手做一个简单的“按摩器”。核心其实很简单:关键就在 vibrate() 里数组参数的写法,按自己的需求把数组配置好就行了!另外要特别注意,下面这段代码需要在真机上测试!

运行效果图

实现代码

简单的布局文件,五个按钮:activity_main.xml


接着是MainActivity.ja va部分:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn_hasVibrator;
    private Button btn_short;
    private Button btn_long;
    private Button btn_rhythm;
    private Button btn_cancle;
    private Vibrator myVibrator;
    private Context mContext;
@Override
    protected void onCreate(Bundle sa vedInstanceState) {
        super.onCreate(sa vedInstanceState);
        setContentView(R.layout.activity_main);
        //获得系统的Vibrator实例:
        myVibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);
        mContext = MainActivity.this;
        bindViews();
    }
private void bindViews() {
        btn_hasVibrator = (Button) findViewById(R.id.btn_hasVibrator);
        btn_short = (Button) findViewById(R.id.btn_short);
        btn_long = (Button) findViewById(R.id.btn_long);
        btn_rhythm = (Button) findViewById(R.id.btn_rhythm);
        btn_cancle = (Button) findViewById(R.id.btn_cancle);
btn_hasVibrator.setOnClickListener(this);
        btn_short.setOnClickListener(this);
        btn_long.setOnClickListener(this);
        btn_rhythm.setOnClickListener(this);
        btn_cancle.setOnClickListener(this);
    }
@Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_hasVibrator:
                Toast.makeText(mContext, myVibrator.hasVibrator() ? "当前设备有振动器" : "当前设备无振动器",
                        Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_short:
                myVibrator.cancel();
                myVibrator.vibrate(new long[]{100, 200, 100, 200}, 0);
                Toast.makeText(mContext, "短振动", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_long:
                myVibrator.cancel();
                myVibrator.vibrate(new long[]{100, 100, 100, 1000}, 0);
                Toast.makeText(mContext, "长振动", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_rhythm:
                myVibrator.cancel();
                myVibrator.vibrate(new long[]{500, 100, 500, 100, 500, 100}, 0);
                Toast.makeText(mContext, "节奏振动", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_cancle:
                myVibrator.cancel();
                Toast.makeText(mContext, "取消振动", Toast.LENGTH_SHORT).show();
        }
    }
}

对了,别漏了振动器权限哦!

4.示例代码下载:

VibratorDemo.zip

本节小结:

好的,本节我们学习了Vibrator(振动器)的基本使用,代码非常简单,还不赶紧加入到 你的APP中,让你的应用HI起来~,嗯,就说这么多,谢谢,天色不早,小猪还是赶紧回家吧! 毕竟我还是个黄花闺仔!万一湿身了就不好了~

本文转载于:https://www.runoob.com/w3cnote/android-tutorial-vibrator.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注