Страницы

Поиск по вопросам

четверг, 26 декабря 2019 г.

Qt под android 7+

#android #cpp #qt #qt5 #android_permissions


Всем доброго времени суток.
Занимаюсь разработкой qt под android и начал сталкиваться с проблемой отсутствия
интернета на андроид 7 и выше в приложении, при том что интернет в телефоне есть.
Вот вопрос, который уже поднимал здесь, но его решение рассчитано на android studio,
а не на qt:
internet android 7+
Как можно запросить права на интернет в рантайме(qt 5.10.1)? пытаюсь это сделать
такой конструкцией, но результата нет:

#include "my_app.h"
#include 
#ifdef ANDROID
#include 
#endif
#include 

bool checkPermission(const QString& perm)
{
#ifdef ANDROID
QtAndroid::PermissionResult r = QtAndroid::checkPermission(perm);
if(r == QtAndroid::PermissionResult::Denied)
{
    QtAndroid::requestPermissionsSync( QStringList() << perm );
    r = QtAndroid::checkPermission(perm);
    if(r == QtAndroid::PermissionResult::Denied)
    {
        QMessageBox::information(0, "Ошибка", "получить разрешение не           
 удалось");
         return false;
}
}
#endif
return true;
}


int main(int argc, char *argv[])
{

checkPermission("android.permission.ACCESS_WIFI_STATE");
checkPermission("android.permission.ACCESS_NETWORK_STATE");
checkPermission("android.permission.INTERNET");

QApplication a(argc, argv);
MyApp w;
w.show();

return a.exec();
}

    


Ответы

Ответ 1



Всё оказалось банально. В android 7+ нет поддержки ssl "из коробки" (google убрал). Обычный http заработал без проблем

Комментариев нет:

Отправить комментарий