Android震动

实现手机震动其实很简单,手机震动使用是Vibrator类,然后震动也是需要权限的,在使用之前在AndroidManifest.xml文件中添加

<uses-permission android:name="android.permission.VIBRATE"/>
1
然后这里示例的代码是使用点击按钮的时候可以实现震动,在按钮的点击事件的函数中添加这样几句话:

Vibrator vibrator = (Vibrator)this.getSystemService(this.VIBRATOR_SERVICE);
vibrator.vibrate(1000);
1
2
这里的this代表的当前的Context,然后最后一局代码设置的是震动的时间,这里的单位是ms,这里只是震动一下,如果想要实现类似接电话的时候的连续的震动,可以使用另外一种方法。

首先,这里使用的是一个长整型数组,数组的a[0]表示静止的时间,a[1]代表的是震动的时间,然后数组的a[2]表示静止的时间,a[3]代表的是震动的时间……依次类推下去,然后这里的代码有一点小小的改变:

Vibrator vibrator = (Vibrator)this.getSystemService(this.VIBRATOR_SERVICE);
long[] patter = {1000, 1000, 2000, 50};
vibrator.vibrate(patter, 0);
1
2
3
最后一行中vibrate的第二参数表示从哪里开始循环,比如这里的0表示这个数组在第一次循环完之后会从下标0开始循环到最后,这里的如果是-1表示不循环。

当然了,如果你设置成循环后,如果程序不结束它是不会停止震动的,这里使用

vibrator.cancel();
 

<think>我们参考了站内关于Android震动实现的引用,其中展示了使用Vibrator类实现震动的方法和所需权限。 根据用户需求,我们将在Android应用中使用Java实现设备震动功能。主要步骤如下: 1. 获取Vibrator系统服务 2. 检查设备是否支持震动 3. 设置震动模式(一次震动或重复震动) 4. 添加震动权限 注意:在Android 8.0(API 26)及以上,长时间重复震动需要后台震动权限,但一般短震动不需要。此外,从Android 10(API 29)开始,震动效果可能受系统省电模式影响。 我们将分步骤说明实现方法。</think>### Android设备震动功能实现指南 在Android应用中实现设备震动功能主要通过`Vibrator`类完成,以下是详细步骤: #### 1. 添加权限声明 在`AndroidManifest.xml`中添加震动权限: ```xml <uses-permission android:name="android.permission.VIBRATE" /> ``` #### 2. Java代码实现 ```java // 获取Vibrator实例 Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); // 检查设备是否支持震动 if (vibrator != null && vibrator.hasVibrator()) { // 单次震动震动500毫秒) vibrator.vibrate(500); // 模式化震动(交替震动/暂停) long[] pattern = { 0, // 立即开始 300, // 震动300ms 200, // 暂停200ms 300 // 再次震动300ms }; vibrator.vibrate(pattern, -1); // -1表示不重复 } ``` #### 3. 高级功能(API 26+) Android 8.0+推荐使用`VibrationEffect`: ```java if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // 单次震动 VibrationEffect oneShot = VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE); // 波形震动 VibrationEffect waveform = VibrationEffect.createWaveform( new long[]{0, 200, 100, 300}, // [延迟, 震动, 暂停, 震动...] new int[]{0, 128, 0, 255}, // 振幅数组 (0-255) -1 // 不重复 ); vibrator.vibrate(waveform); } ``` #### 4. 注意事项 1. **运行时权限**:Android 6.0+需动态申请`VIBRATE`权限 2. **震动取消**:`vibrator.cancel()`可立即停止震动 3. **省电模式**:部分设备在省电模式下会限制震动 4. **API兼容**:低于API 26的设备使用传统方法[^1] > **最佳实践**:震动时长不宜超过1秒,避免干扰用户。游戏场景建议使用短震动(50-200ms),通知场景可用模式化震动
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值