mirror of
https://github.com/QuasarApp/QtAndroidTools.git
synced 2025-05-08 01:59:34 +00:00
62 lines
1.8 KiB
C++
62 lines
1.8 KiB
C++
|
|
#include "QtAndroidAppPermissions.h"
|
|
|
|
QtAndroidAppPermissions::QtAndroidAppPermissions()
|
|
{
|
|
}
|
|
|
|
QObject* QtAndroidAppPermissions::qmlInstance(QQmlEngine *engine, QJSEngine *scriptEngine)
|
|
{
|
|
Q_UNUSED(engine);
|
|
Q_UNUSED(scriptEngine);
|
|
|
|
return new QtAndroidAppPermissions();
|
|
}
|
|
|
|
void QtAndroidAppPermissions::requestPermissions(const QStringList &permissionsNameList)
|
|
{
|
|
for(int i = 0; i < permissionsNameList.count(); i++)
|
|
{
|
|
requestPermission(permissionsNameList[i]);
|
|
}
|
|
}
|
|
|
|
void QtAndroidAppPermissions::requestPermission(const QString &permissionName)
|
|
{
|
|
if(QtAndroid::androidSdkVersion() >= 23)
|
|
{
|
|
if(QtAndroid::checkPermission(permissionName) != QtAndroid::PermissionResult::Granted)
|
|
{
|
|
QtAndroid::requestPermissions(QStringList() << permissionName, std::bind(&QtAndroidAppPermissions::RequestPermissionResults, this, std::placeholders::_1));
|
|
return;
|
|
}
|
|
}
|
|
|
|
emit requestPermissionsResults(permissionName, true);
|
|
}
|
|
|
|
bool QtAndroidAppPermissions::shouldShowRequestPermissionInfo(const QString &permissionName)
|
|
{
|
|
if(QtAndroid::androidSdkVersion() >= 23)
|
|
{
|
|
return QtAndroid::shouldShowRequestPermissionRationale(permissionName);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void QtAndroidAppPermissions::RequestPermissionResults(const QtAndroid::PermissionResultMap &ResultMap)
|
|
{
|
|
if(ResultMap.count() > 0)
|
|
{
|
|
QtAndroid::PermissionResultMap::const_iterator PermissionItem = ResultMap.constBegin();
|
|
|
|
while(PermissionItem != ResultMap.constEnd())
|
|
{
|
|
const bool Granted = (PermissionItem.value() == QtAndroid::PermissionResult::Granted) ? true : false;
|
|
emit requestPermissionsResults(PermissionItem.key(), Granted);
|
|
++PermissionItem;
|
|
}
|
|
}
|
|
}
|