秋·风

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Delphi xe7 up1 调用android振动功能

振动用到以下4个单元:

Androidapi.JNI.App,Androidapi.JNIBridge,Androidapi.JNI.Os,Androidapi.Helpers

使用方法:

var

  LVibrator: JVibrator;

begin

    LVibrator := TJVibrator.Wrap

      ((SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE)

      as ILocalObject).GetObjectID); // 调用振动

    if not LVibrator.hasVibrator then

    begin

      ShowMessage('手机不支持震动');

      Exit;

    end;

    LVibrator.vibrate(500); // 振动500毫秒

最后在Project Options中设置Uses PermissionsVibrate设为true

 

详细程序如下:

unit Unit6;

interface

uses

  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,Androidapi.JNI.App,

  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,

  Androidapi.JNIBridge,Androidapi.JNI.Os,Androidapi.Helpers;

type

  TForm6 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form6: TForm6;

implementation

{$R *.fmx}

procedure TForm6.Button1Click(Sender: TObject);

var

  LVibrator: JVibrator;

begin

    LVibrator := TJVibrator.Wrap

      ((SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE)

      as ILocalObject).GetObjectID); // 调用振动

    if not LVibrator.hasVibrator then

    begin

      ShowMessage('手机不支持震动');

      Exit;

    end;

    LVibrator.vibrate(500); // 振动500毫秒

end;

 

end.

 

posted on 2015-02-09 09:30  秋·风  阅读(1434)  评论(0编辑  收藏  举报