Browse Source

Fix sd card permission

QGC4.4
Don Gagne 2 years ago committed by Don Gagne
parent
commit
4003b48c5d
  1. 1
      android/AndroidManifest.xml
  2. 17
      android/src/AndroidInterface.cc

1
android/AndroidManifest.xml

@ -102,5 +102,6 @@
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest> </manifest>

17
android/src/AndroidInterface.cc

@ -12,10 +12,25 @@
#include "QGCApplication.h" #include "QGCApplication.h"
#include "AndroidInterface.h" #include "AndroidInterface.h"
#include <QAndroidJniObject> #include <QAndroidJniObject>
#include <QtAndroid>
QString AndroidInterface::getSDCardPath() QString AndroidInterface::getSDCardPath()
{ {
QAndroidJniObject value = QAndroidJniObject::callStaticObjectMethod("org/mavlink/qgroundcontrol/QGCActivity", "getSDCardPath", QAndroidJniObject value = QAndroidJniObject::callStaticObjectMethod("org/mavlink/qgroundcontrol/QGCActivity", "getSDCardPath",
"()Ljava/lang/String;"); "()Ljava/lang/String;");
return value.toString(); QString sdCardPath = value.toString();
QString readPermission("android.permission.READ_EXTERNAL_STORAGE");
QString writePermission("android.permission.WRITE_EXTERNAL_STORAGE");
if (QtAndroid::checkPermission(readPermission) == QtAndroid::PermissionResult::Denied ||
QtAndroid::checkPermission(writePermission) == QtAndroid::PermissionResult::Denied) {
QtAndroid::PermissionResultMap resultHash = QtAndroid::requestPermissionsSync(QStringList({ readPermission, writePermission }));
if (resultHash[readPermission] == QtAndroid::PermissionResult::Denied ||
resultHash[writePermission] == QtAndroid::PermissionResult::Denied) {
return QString();
}
}
return sdCardPath;
} }

Loading…
Cancel
Save