【原】iOS和android手机震动

手机震动本人当时也是各种查资料的,这里提供实验成功的案例。注:是有参考来源的,不过下面内容全是自己从成功代码总结的.只是简单的震动。

一、iOS手机震动代码

1.头部加上这个框架

#import 

2.在按钮点击事件写上这句话就可以了。

 AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

二、android手机震动代码。

1.先创建一个class文件,文件名为:VibratorUtil,内容如下:

package org.cocos2dx.javascript;

import android.app.Activity;
import android.app.Service;
import android.os.Vibrator;

/**
* Created by david on 2017/7/20.
*/
public class VibratorUtil {

   /**
    * final Activity activity  :调用该方法的Activity实例
    * long milliseconds :震动的时长,单位是毫秒
    * long[] pattern  :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒
    * boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次
    */

   public static void Vibrate(final Activity activity, long milliseconds) {
       Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
       vib.vibrate(milliseconds);
   }
   public static void Vibrate(final Activity activity, long[] pattern,boolean isRepeat) {
       Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
       vib.vibrate(pattern, isRepeat ? 1 : -1);
   }
}

2.调用:在你需要调用的按钮点击事件里写上如下内容就可以调用了:

    //别忘记震动权限
        Vibrator vibrator = (Vibrator)app.getSystemService(VIBRATOR_SERVICE);
        long[] pattern = {50 ,400 };    //停止 开始  停止 开启
// 注意:{50 ,400 }  表示震动一下,{50 ,400 ,50 , 400}震动两次,以此类推,具体自己可以尝试  ,数值也可以自己改
        vibrator.vibrate(pattern, -1);            //不重复设置为1 -1

【拓展】

连续震动:
iOS代码:(用计时器来实现了,没使用网上提供的)

#import "ViewController.h"
#import 
@interface ViewController ()
{
    SystemSoundID sound;
    int m;
}
//振动计时器
@property (nonatomic,strong)NSTimer *_vibrationTimer;
@end

@implementation ViewController
@synthesize _vibrationTimer;

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
     m=0;
}


- (IBAction)ClickZhenDongAction:(id)sender {
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    /**
     初始化计时器  每一秒振动一次

     @param playkSystemSound 振动方法
     @return
     */
    m=0;
    _vibrationTimer = [NSTimer scheduledTimerWithTimeInterval:0.6 target:self selector:@selector(playkSystemSound) userInfo:nil repeats:YES];//这里0.6可以改,大多数用的是1,当然你可以自己按要求调
    }


//振动
- (void)playkSystemSound{
    if (_vibrationTimer.isValid) {
        m++;
        if(m==3){//想震几下这里可以改成几
        [_vibrationTimer invalidate];  // 从运行循环中移除, 对运行循环的引用进行一次 release
        _vibrationTimer=nil;            // 将销毁定时器
         return;
        }
    }
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

安卓代码看上面:
主要是这句话:
long[] pattern = {50 ,400,50 ,400 }; //停止 开始 停止 开启震动两下

当然也可以参考这个

ios 类方法里怎么使用全局变量:这么定义就好了!
static NSTimer *vibrationTimer;

你可能感兴趣的:(【原】iOS和android手机震动)