【发布时间】:2018-11-23 06:44:16
【问题描述】:
我正在尝试使用 QAndroidJniObject 将 wifi 名称连接到我的手机。
java 文件:
package org.qtproject.example;
import android.net.NetworkInfo.DetailedState;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class QtAndroidToastJava extends QtActivity
{
public static String getWifiName(Context context) {
WifiManager manager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (manager.isWifiEnabled()) {
WifiInfo wifiInfo = manager.getConnectionInfo();
if (wifiInfo != null) {
DetailedState state = WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState());
if (state == DetailedState.CONNECTED || state == DetailedState.OBTAINING_IPADDR) {
return wifiInfo.getSSID();
}
}
}
return null;
}
}
我的cpp代码是
void WIFICLASS::updateAndroidNotification()
{
qDebug()<<"******************************************8";
auto returnString = QAndroidJniObject::callStaticMethod <jstring>("org/qtproject/example/QtAndroidToastJava",
"getWifiName","(V;)Ljava/lang/String");
// // QString user = juser.toString();
// qDebug()<<"ANSWER"<<user;
qDebug()<<returnString;
}
在尝试构建这个之后,我收到了这个错误: 23: 错误:未定义引用 '_jstring* QAndroidJniObject::callStaticMethod<_jstring>(char const*, char const*, char const*, ...)'
我该如何解决这个问题?
这样做的正确方法是什么?
【问题讨论】:
-
您是否在 .pro 文件中添加了
QT += androidextras? -
@FrankOsterfeld 我在我的 pro 文件中添加了 QT += androidextras ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
-
通过添加这一行
QAndroidJniObject returnString = QAndroidJniObject::callStaticObjectMethod("org/qtproject/example/QtAndroidToastJava","getWifiName","(Landroid/content/Context)",QtAndroid::androidContext().object());**我收到错误:"W System.err: java.lang.NoSuchMethodError: no static method "Lorg/qtproject/example/QtAndroidToastJava;.getWifiName( Landroid/content/Context)"" 我认为我需要适当的上下文参数,因为我使用上下文 getWifiName(Context context) 作为我在 java@FrankOsterfeld 中的函数的参数我应该添加什么代替(Landroid/content/Context)。
标签: android qt wifi qtandroidextras qandroidjniobject