2Pascal-新时代的Pascal

 找回密码
 立即注册
搜索
热搜: fastreport
查看: 1699|回复: 1
打印 上一主题 下一主题

Delphi 10, 10.1下,android调用振动函数 闪退 乐视手机

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
跳转到指定楼层
楼主
发表于 2016-5-11 14:46:35 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
京东购书支持本站
本帖最后由 fghydx 于 2016-5-11 16:04 编辑

写了个函数,想调用这个函数执行振动.但无论是在CallInUIThread中还是直接写,都会在 LJO := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE);这一句闪退Delphi 10 也闪退  乐视手机

procedure Vibrator(Long: integer);
var
  LVibrator: JVibrator;
  LJO: JObject;
begin
  CallInUIThread(
    procedure
    begin
      try
        LJO := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE);          //在执行这一句时闪退
        if Assigned(LJO) then
        begin
          LVibrator := TJVibrator.Wrap((LJO as ILocalObject).GetObjectID);
          if LVibrator.hasVibrator then
          begin
            LVibrator.vibrate(Long);
          end
          else
          begin
            ShowToast('你的手机不支持振动!', ShortToast);
          end;
        end;
      except
        ShowToast(Exception(ExceptObject).Message, TToastLength.ShortToast);
      end;
    end);
end;

LJO := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE);          //这一句错了,应该是
LJO := SharedActivity.getSystemService(TJContext.JavaClass.VIBRATOR_SERVICE);        



回复

使用道具 举报

90

主题

293

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83967
沙发
发表于 2016-5-11 15:17:06 | 只看该作者
京东数码购物支持本站
关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了
http://www.2pascal.com/thread-1384-1-1.html
本帖内部可能有答案。
你自己找找吧。
(C)(P)Flying Wang
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|新时代Pascal论坛

GMT+8, 2024-12-22 23:15 , Processed in 0.065168 second(s), 24 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表