Я пытаюсь подключить имя Wi-Fi к моему мобильному телефону, используя QAndroidJniObject.
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*, ...)< /сильный>'
Как я могу решить эту проблему?
Каков правильный способ сделать это?
QT += androidextras
в файл .pro? - person Frank Osterfeld   schedule 23.11.2018QAndroidJniObject 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). - person Ash   schedule 23.11.2018