当前位置:
凯发ag旗舰厅登录网址下载 >
运维知识
> android
>内容正文
android
qt for android获取手机热点开关状态 -凯发ag旗舰厅登录网址下载
凯发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(); }
总结
以上是凯发ag旗舰厅登录网址下载为你收集整理的qt for android获取手机热点开关状态的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。
- 上一篇:
- 下一篇: