Страницы

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

Показаны сообщения с ярлыком android-permissions. Показать все сообщения
Показаны сообщения с ярлыком android-permissions. Показать все сообщения

четверг, 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 заработал без проблем

пятница, 30 ноября 2018 г.

Qt под android 7+

Всем доброго времени суток. Занимаюсь разработкой 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(); }


Ответ

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