Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
permission_handler
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
songyanzhi
permission_handler
Commits
cd5ecac6
Commit
cd5ecac6
authored
Jan 05, 2020
by
Claudio Redi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added ACCESS_MEDIA_LOCATION permission handling for Android >= 10
parent
59a3c588
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
26 additions
and
4 deletions
+26
-4
android/src/main/java/com/baseflow/permissionhandler/PermissionHandlerPlugin.java
+10
-1
example/android/app/src/debug/AndroidManifest.xml
+4
-0
example/android/app/src/main/AndroidManifest.xml
+3
-0
example/lib/main.dart
+2
-2
ios/Classes/PermissionHandlerEnums.h
+1
-0
lib/src/permission_enums.dart
+6
-1
No files found.
android/src/main/java/com/baseflow/permissionhandler/PermissionHandlerPlugin.java
View file @
cd5ecac6
...
...
@@ -62,7 +62,8 @@ public class PermissionHandlerPlugin implements MethodCallHandler {
private
static
final
int
PERMISSION_GROUP_STORAGE
=
14
;
private
static
final
int
PERMISSION_GROUP_IGNORE_BATTERY_OPTIMIZATIONS
=
15
;
private
static
final
int
PERMISSION_GROUP_NOTIFICATION
=
16
;
private
static
final
int
PERMISSION_GROUP_UNKNOWN
=
17
;
private
static
final
int
PERMISSION_GROUP_ACCESS_MEDIA_LOCATION
=
17
;
private
static
final
int
PERMISSION_GROUP_UNKNOWN
=
18
;
private
PermissionHandlerPlugin
(
Registrar
mRegistrar
)
{
this
.
mRegistrar
=
mRegistrar
;
...
...
@@ -87,6 +88,7 @@ public class PermissionHandlerPlugin implements MethodCallHandler {
PERMISSION_GROUP_STORAGE
,
PERMISSION_GROUP_IGNORE_BATTERY_OPTIMIZATIONS
,
PERMISSION_GROUP_NOTIFICATION
,
PERMISSION_GROUP_ACCESS_MEDIA_LOCATION
,
PERMISSION_GROUP_UNKNOWN
,
})
private
@interface
PermissionGroup
{
...
...
@@ -195,6 +197,8 @@ public class PermissionHandlerPlugin implements MethodCallHandler {
case
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
:
case
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
:
return
PERMISSION_GROUP_STORAGE
;
case
Manifest
.
permission
.
ACCESS_MEDIA_LOCATION
:
return
PERMISSION_GROUP_ACCESS_MEDIA_LOCATION
;
default
:
return
PERMISSION_GROUP_UNKNOWN
;
}
...
...
@@ -663,6 +667,11 @@ public class PermissionHandlerPlugin implements MethodCallHandler {
permissionNames
.
add
(
Manifest
.
permission
.
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
);
break
;
case
PERMISSION_GROUP_ACCESS_MEDIA_LOCATION:
if
(
VERSION
.
SDK_INT
>=
VERSION_CODES
.
Q
&&
hasPermissionInManifest
(
Manifest
.
permission
.
ACCESS_MEDIA_LOCATION
))
permissionNames
.
add
(
Manifest
.
permission
.
ACCESS_MEDIA_LOCATION
);
break
;
case
PERMISSION_GROUP_NOTIFICATION:
case
PERMISSION_GROUP_MEDIA_LIBRARY:
case
PERMISSION_GROUP_PHOTOS:
...
...
example/android/app/src/debug/AndroidManifest.xml
View file @
cd5ecac6
...
...
@@ -46,4 +46,8 @@
<!-- Permissions options for the `sensors` group -->
<uses-permission
android:name=
"android.permission.BODY_SENSORS"
/>
<!-- Permissions options for the `access_media_location` group -->
<uses-permission
android:name=
"android.permission.ACCESS_MEDIA_LOCATION"
/>
</manifest>
example/android/app/src/main/AndroidManifest.xml
View file @
cd5ecac6
...
...
@@ -51,6 +51,9 @@
<!-- Permissions options for the `sensors` group -->
<uses-permission
android:name=
"android.permission.BODY_SENSORS"
/>
<!-- Permissions options for the `access_media_location` group -->
<uses-permission
android:name=
"android.permission.ACCESS_MEDIA_LOCATION"
/>
<application
android:name=
"io.flutter.app.FlutterApplication"
android:icon=
"@mipmap/ic_launcher"
...
...
example/lib/main.dart
View file @
cd5ecac6
...
...
@@ -30,8 +30,8 @@ class MyApp extends StatelessWidget {
return
permission
!=
PermissionGroup
.
unknown
&&
permission
!=
PermissionGroup
.
sms
&&
permission
!=
PermissionGroup
.
storage
&&
permission
!=
PermissionGroup
.
ignoreBatteryOptimizations
;
permission
!=
PermissionGroup
.
ignoreBatteryOptimizations
&&
permission
!=
PermissionGroup
.
access_media_location
;
}
else
{
return
permission
!=
PermissionGroup
.
unknown
&&
permission
!=
PermissionGroup
.
mediaLibrary
&&
...
...
ios/Classes/PermissionHandlerEnums.h
View file @
cd5ecac6
...
...
@@ -23,6 +23,7 @@ typedef NS_ENUM(int, PermissionGroup) {
PermissionGroupStorage
,
PermissionGroupIgnoreBatteryOptimizations
,
PermissionGroupNotification
,
PermissionGroupAccessMediaLocation
,
PermissionGroupUnknown
,
};
...
...
lib/src/permission_enums.dart
View file @
cd5ecac6
...
...
@@ -153,8 +153,11 @@ class PermissionGroup {
/// iOS: Notification
static
const
PermissionGroup
notification
=
PermissionGroup
.
_
(
16
);
/// Android: Allows an application to access any geographic locations persisted in the user's shared collection.
static
const
PermissionGroup
access_media_location
=
PermissionGroup
.
_
(
17
);
/// The unknown permission only used for return type, never requested
static
const
PermissionGroup
unknown
=
PermissionGroup
.
_
(
1
7
);
static
const
PermissionGroup
unknown
=
PermissionGroup
.
_
(
1
8
);
static
const
List
<
PermissionGroup
>
values
=
<
PermissionGroup
>[
calendar
,
...
...
@@ -174,6 +177,7 @@ class PermissionGroup {
storage
,
ignoreBatteryOptimizations
,
notification
,
access_media_location
,
unknown
,
];
...
...
@@ -195,6 +199,7 @@ class PermissionGroup {
'storage'
,
'ignoreBatteryOptimizations'
,
'notification'
,
'access_media_location'
,
'unknown'
,
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment