java qt jni_详解Qt开发中JNI调用Android系统功能_Android_Android系统_Qt_课课家

本文详细介绍了在Qt开发中如何利用JNI调用Android系统功能,包括震动、保持屏幕常亮、切换屏幕方向、调节屏幕亮度和设置铃声模式。通过实例代码解析了QAndroidJniObject的使用方法,帮助开发者更好地实现Qt与Android系统的交互。
摘要由CSDN通过智能技术生成

JNI其实是Java Native Interface的简称,也就是java本地接口。 Java是一种平台无关性的语言,平台对于上层的java代码来说是透明的,所以在多数时间我们是不需要JNI的,但本文在Qt开发过程中使用到JNI调用Android系统功能。

4da22d12dab3fd9ec955cb12680cab4b.png

在“详解Qt开发中JNI调用Android系统功能(1)”中我们给出了一些简单的示例,演示了如何使用 Qt JNI 类库访问网络状态、系统资源目录、当前应用信息等等,这次呢,我们提供一些新的示例,这些示例可能更具实际意义。

本文的示例包括:

1.震动

2.让屏幕常亮

3.动态改变应用的显示方向(横屏、竖屏)

4.调节屏幕亮度

5.设置铃声模式

示例介绍

ec7e5370c84229d7eca85dbc4fefafc2.png

图1

我们按照界面上的顺序,一个一个来看这些功能如何实现。

源码分析

构建界面的代码在 Widget 类的构造函数里,不说了。这次我们换个搞法,不列所有代码了,一个功能一个功能分开说代码,这样文章看起来短一些。

震动

当你点击图1中的“Vibrate”按钮,onVibrate() 槽会被调用,它的代码如下:

359f5206fe1387508e3736ae221f0e71.png

看着是不是很熟悉呢?其实使用 QAndroidJniObject 来调用 Java 类库,写出来的代码看起来都差不多……你翻翻“QtAndroid详解(3):startActivity实战Android拍照功能”和“QtAndroid详解(4):JNI调用Android系统功能(1)”里面的代码就会更确认这一点。其实这里面体现的是QAndroidJniObject的一般用法。

Android 里的很多系统服务都有一个名字,以静态成员变量的形式定义在 Context 类中。之前也见识过了。震动器的名字是 Context.VIBRATOR_SERVICE ,对应的类为 android.os.Vibrator。Vibrator 的方法 “void vibrate(long ms)” ,可以产生震动,参数单位是毫秒。

我们 C++ 代码,先使用 QAndroidJniObjec

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值