Skip to content

Commit 25e5acc

Browse files
authored
Merge pull request #1741 from AndreMiras/feature/ticket1704_request_permissions
Requests runtime permissions list, fixes #1704
2 parents 287d191 + 2ea377e commit 25e5acc

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

doc/source/apis.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ to access the SD card, the camera, and other things.
1515
This can be done through the `android` module which is *available per default*
1616
unless you blacklist it. Use it in your app like this::
1717

18-
from android.permissions import request_permission, Permission
19-
request_permission(Permission.WRITE_EXTERNAL_STORAGE)
18+
from android.permissions import request_permissions, Permission
19+
request_permissions([Permission.WRITE_EXTERNAL_STORAGE])
2020

2121
The available permissions are listed here:
2222

pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonActivity.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -604,17 +604,16 @@ public boolean checkCurrentPermission(String permission) {
604604
}
605605

606606
/**
607-
* Used by android.permissions p4a module to request a permission
607+
* Used by android.permissions p4a module to request runtime permissions
608608
**/
609-
public void requestNewPermission(String permission) {
609+
public void requestPermissions(String[] permissions) {
610610
if (android.os.Build.VERSION.SDK_INT < 23)
611611
return;
612-
613612
try {
614613
java.lang.reflect.Method methodRequestPermission =
615614
Activity.class.getMethod("requestPermissions",
616615
java.lang.String[].class, int.class);
617-
methodRequestPermission.invoke(this, new String[] {permission}, 1);
616+
methodRequestPermission.invoke(this, permissions, 1);
618617
} catch (IllegalAccessException | NoSuchMethodException |
619618
InvocationTargetException e) {
620619
}

pythonforandroid/recipes/android/src/android/permissions.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,13 @@ class Permission:
421421
)
422422

423423

424-
def request_permission(permission):
424+
def request_permissions(permissions):
425425
python_activity = autoclass('org.kivy.android.PythonActivity')
426-
python_activity.requestNewPermission(permission + "")
426+
python_activity.requestPermissions(permissions)
427+
428+
429+
def request_permission(permission):
430+
request_permissions([permission])
427431

428432

429433
def check_permission(permission):

pythonforandroid/recipes/pyjnius/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66

77

88
class PyjniusRecipe(CythonRecipe):
9-
version = '1.1.3'
9+
# "6553ad4" is one commit after last release (1.2.0)
10+
# it fixes method resolution, required for resolving requestPermissions()
11+
version = '6553ad4'
1012
url = 'https://github.com/kivy/pyjnius/archive/{version}.zip'
1113
name = 'pyjnius'
1214
depends = [('genericndkbuild', 'sdl2', 'sdl'), 'six']

0 commit comments

Comments
 (0)