【原】iOS和android手机震动

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

一、iOS手机震动代码

1.头部加上这个框架

#import <AudioToolbox/AudioToolbox.h>

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 <AudioToolbox/AudioToolbox.h>
@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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,790评论 25 709
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,325评论 8 183
  • 兄弟二人带着(隐藏的两只变异小僵尸TNT一大一小 开车回老家 从此开始一个新大陆 新世纪时代。 ...
    钟汉莨阅读 3,093评论 0 0
  • 原文, 小树在春风里摇,绿了嫩芽,绿了树梢,小树在春风里摇晃了花蕊红了花苞。 让一年级的孩子仿写,看看她们的作品吧...
    清心阁阅读 10,103评论 0 0
  • 人往高处走,大抵是不错的。《周易》上说,潜龙,勿用;亢龙,有悔。可见不管是处在事业开端,还是有所成就的人,都要克制...
    浅浅含笑阅读 2,669评论 0 0