diff options
Diffstat (limited to 'src/android/jar/src')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java | 5 | ||||
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtNative.java | 19 |
2 files changed, 18 insertions, 6 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java index b602cabd27..bfdbaed43f 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java @@ -1455,4 +1455,9 @@ public class QtActivityDelegate } return false; } + + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) + { + QtNative.sendRequestPermissionsResult(requestCode, permissions, grantResults); + } } diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index 4df2cb88c9..6876aac11f 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -455,20 +455,25 @@ public class QtNative } } - public static int checkSelfPermission(final String permission) + public static Context getContext() { + if (m_activity == null) + return m_activity; + return m_service; + } + + public static int checkSelfPermission(String permission) { int perm = PackageManager.PERMISSION_DENIED; synchronized (m_mainActivityMutex) { - if (m_activity == null) - return perm; + Context context = getContext(); try { if (Build.VERSION.SDK_INT >= 23) { if (m_checkSelfPermissionMethod == null) m_checkSelfPermissionMethod = Context.class.getMethod("checkSelfPermission", String.class); - perm = (Integer)m_checkSelfPermissionMethod.invoke(m_activity, permission); + perm = (Integer)m_checkSelfPermissionMethod.invoke(context, permission); } else { - final PackageManager pm = m_activity.getPackageManager(); - perm = pm.checkPermission(permission, m_activity.getPackageName()); + final PackageManager pm = context.getPackageManager(); + perm = pm.checkPermission(permission, context.getApplicationContext().getPackageName()); } } catch (Exception e) { e.printStackTrace(); @@ -831,6 +836,8 @@ public class QtNative public static native void runPendingCppRunnables(); + public static native void sendRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults); + private static native void setNativeActivity(Activity activity); private static native void setNativeService(Service service); } |