zoukankan      html  css  js  c++  java
  • Delphi XE5 Android 调用手机震动

    uses
      Androidapi.JNI.Os,
      Androidapi.JNIBridge;
    
    function GetVibratorArray(const AIntArr: array of Int64): TJavaArray<Int64>;
    var
      LIndex: Integer;
    begin
      Result := TJavaArray<Int64>.Create(Length(AIntArr));
      for LIndex := Low(AIntArr) to High(AIntArr) do
        Result.Items[LIndex] := AIntArr[LIndex];
    end;
    
    procedure VibratorTest;
    var
      LVibrator: JVibrator;
      LJavaArray: TJavaArray<Int64>;
    begin
      { Vibrator概要:
          cancel(): 关闭震动
          hasVibrator():检查硬件是否支持
          vibrate(long milliseconds): 震动milliseconds毫秒
          vibrate(long[] pattern, int repeat):按给定数组震动 }
    
      { 需要开启Vibrator权限 }
      LVibrator := TJVibrator.Create as JVibrator;
    
      { 测试手机是否支持震动 }
      if not LVibrator.hasVibrator then
      begin
        ShowMessage('手机不支持震动');
        Exit;
      end;
    
    { Test procedure vibrate(milliseconds: Int64); cdecl; overload; }
    
      { 效果A: 立即震动 800 毫秒 }
    //  LVibrator.vibrate(800);
    
    { Test procedure vibrate(pattern: TJavaArray<Int64>; repeat_: Integer); cdecl; overload;
       pattern: 为震动数组参数,偶数代表等待时间(ms), 奇数代表震动持续时间(ms)
       repeat_: -1: 只震动一遍;  > -1: 从Index为 repeat_ 的位置开始重复震动 }
    
      { 创建测试数组 }
      LJavaArray := GetVibratorArray([500, 1000, 2000, 3000]);
    
      { 效果B: 等待500毫秒 -> 震动1秒 -> 等待2秒 -> 震动3秒 }
    //  LVibrator.vibrate(LJavaArray, -1);
    
      { 效果C: 效果B重复震动 }
    //  LVibrator.vibrate(LJavaArray, 0);
    
      { 取消震动(当手机暗屏或锁屏时会自动取消) }
    //  LVibrator.cancel;
    
      { 效果D: (等待500毫秒 -> 震动1秒 -> 等待2秒 -> 震动3秒)(先按原顺序震动一遍)
               接着循环 [1000, 2000, 3000]
               ->(等待1秒 -> 震动2秒 - > 等待3秒)
               ->[等待1秒 -> 等待2秒 ... ]
               这个听上去的效果像( 等待4秒 -> 震动2秒 )}
      // LVibrator.vibrate(LJavaArray, 1);
    
      { 效果E: (先按原顺序执行一遍), 接着不会震动(偶数为等待时间) }
    //  LVibrator.vibrate(LJavaArray, 3);
    
      { 效果F: 当然是报IndexOutBounds异常 }
    //  LVibrator.vibrate(LJavaArray, {!!!}4);
    
    end;
    View Code
  • 相关阅读:
    [Android Studio 权威教程]Windows下安装Android Studio
    iOS:获取图片Alpha图片
    MFC 直线 虚线 折线 圆 椭圆 矩形 弧形
    大北农董事长夫人莫云为何在美国被逮捕?
    【源代码】LinkedHashMap源代码剖析
    前端那些事儿——中文乱码,网页中文乱码,网页乱码,块元素,内联元素
    Struts2通过自己定义拦截器实现登录之后跳转到原页面
    unity3d ngui-TweenRotation-TweenPosition-TweenScale
    分析函数在数据分析中的应用
    Java Collection
  • 原文地址:https://www.cnblogs.com/key-ok/p/3443359.html
Copyright © 2011-2022 走看看