欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 运维知识 > android >内容正文

android

qt for android获取手机热点开关状态 -凯发ag旗舰厅登录网址下载

发布时间:2025/1/21 android 22 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 qt for android获取手机热点开关状态 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

qt开发android应用,从qt端调用android原生接口获取手机热点开关状态,首先来看一下封装好的android接口类wifihostbiz.java

(以下代码来自网络)

package com.lyy.test;import android.content.context; import android.net.wifi.scanresult; import android.net.wifi.wificonfiguration; import android.net.wifi.wifiinfo; import android.net.wifi.wifimanager; import android.net.wifi.wifimanager.wifilock; import android.util.log;import java.lang.reflect.method;/*** wifi热点业务类* 获取热点状态,设置热点开关**/ public class wifihostbiz {private final string tag = "wifihostbiz";private wifimanager wifimanager;private string wifi_host_ssid = "androidap";private string wifi_host_preshared_key = "12345678";// 密码必须大于8位数public wifihostbiz(context context) {super();//获取wifi管理服务wifimanager = (wifimanager) context.getsystemservice(context.wifi_service);}/**判断热点开启状态*/public boolean iswifiapenabled() {return getwifiapstate() == wifi_ap_state.wifi_ap_state_enabled;}private wifi_ap_state getwifiapstate(){int tmp;try {method method = wifimanager.getclass().getmethod("getwifiapstate");tmp = ((integer) method.invoke(wifimanager));// fix for android 4if (tmp > 10) {tmp = tmp - 10;}return wifi_ap_state.class.getenumconstants()[tmp];} catch (exception e) {// todo auto-generated catch blocke.printstacktrace();return wifi_ap_state.wifi_ap_state_failed;}}public enum wifi_ap_state {wifi_ap_state_disabling, wifi_ap_state_disabled, wifi_ap_state_enabling, wifi_ap_state_enabled, wifi_ap_state_failed}/*** wifi热点开关* @param enabled true:打开 false:关闭* @return true:成功 false:失败*/public boolean setwifiapenabled(boolean enabled) {system.out.println(tag ":开启热点");if (enabled) { // disable wifi in any case//wifi和热点不能同时打开,所以打开热点的时候需要关闭wifiwifimanager.setwifienabled(false);system.out.println(tag ":关闭wifi");}else{wifimanager.setwifienabled(true);}try {//热点的配置类wificonfiguration apconfig = new wificonfiguration();//配置热点的名称(可以在名字后面加点随机数什么的)apconfig.ssid = wifi_host_ssid;//配置热点的密码apconfig.presharedkey = wifi_host_preshared_key;//安全:wpa2_pskapconfig.allowedkeymanagement.set(wificonfiguration.keymgmt.wpa_psk);//通过反射调用设置热点method method = wifimanager.getclass().getmethod("setwifiapenabled", wificonfiguration.class, boolean.type);//返回热点打开状态return (boolean) method.invoke(wifimanager, apconfig, enabled);} catch (exception e) {return false;}} }

首先,如果是一个新创建的qt工程,需要创建一个androidmanifest.xml文件,创建过程不再赘述,然后创建一个java的类,继承于

publicclassmainactivityextendsorg.qtproject.qt5.android.bindings.qtactivity

先定义一个wifihostbiz的对象

publicwifihostbizwifihostbiz; 然后在oncreate中初始化该对象 wifihostbiz=newwifihostbiz(this); 接下来定义一个公有的静态函数

/***获取热点状态*/ public static boolean iswifiapenabled(){return m_instance.wifihostbiz.iswifiapenabled(); }


在c 中的调用方法如下:

bool androidinterface::getwifiapstatus() {bool ret = false;ret = qandroidjniobject::callstaticmethod("com/lyy/test/mainactivity","iswifiapenabled","()z");return ret; }


总结

以上是凯发ag旗舰厅登录网址下载为你收集整理的qt for android获取手机热点开关状态的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图