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
a219011d
Unverified
Commit
a219011d
authored
May 21, 2021
by
Maurits van Beusekom
Committed by
GitHub
May 21, 2021
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #561 from Baseflow/issue/319_permission_handler
Issue/319 permission handler
parents
a49e4abb
1427f263
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
49 additions
and
5 deletions
+49
-5
permission_handler/CHANGELOG.md
+4
-0
permission_handler/README.md
+1
-0
permission_handler/android/src/main/java/com/baseflow/permissionhandler/PermissionConstants.java
+4
-1
permission_handler/android/src/main/java/com/baseflow/permissionhandler/PermissionManager.java
+23
-1
permission_handler/android/src/main/java/com/baseflow/permissionhandler/PermissionUtils.java
+9
-0
permission_handler/example/android/app/src/main/AndroidManifest.xml
+3
-0
permission_handler/example/lib/main.dart
+3
-1
permission_handler/pubspec.yaml
+2
-2
No files found.
permission_handler/CHANGELOG.md
View file @
a219011d
## 7.2.0
*
Added support for the "REQUEST_INSTALL_PACKAGES" permission on Android.
## 7.1.1
## 7.1.1
*
Improved the example app by using the Baseflow Plugin Template and move all the functionality to the
`main.dart`
file.
*
Improved the example app by using the Baseflow Plugin Template and move all the functionality to the
`main.dart`
file.
...
...
permission_handler/README.md
View file @
a219011d
...
@@ -209,6 +209,7 @@ The following permissions will show no dialog, but will open the corrseponding s
...
@@ -209,6 +209,7 @@ The following permissions will show no dialog, but will open the corrseponding s
-
manageExternalStorage
-
manageExternalStorage
-
systemAlertWindow
-
systemAlertWindow
-
requestInstallPackages
## Issues
## Issues
...
...
permission_handler/android/src/main/java/com/baseflow/permissionhandler/PermissionConstants.java
View file @
a219011d
...
@@ -11,6 +11,7 @@ final class PermissionConstants {
...
@@ -11,6 +11,7 @@ final class PermissionConstants {
static
final
int
PERMISSION_CODE_IGNORE_BATTERY_OPTIMIZATIONS
=
209
;
static
final
int
PERMISSION_CODE_IGNORE_BATTERY_OPTIMIZATIONS
=
209
;
static
final
int
PERMISSION_CODE_MANAGE_EXTERNAL_STORAGE
=
210
;
static
final
int
PERMISSION_CODE_MANAGE_EXTERNAL_STORAGE
=
210
;
static
final
int
PERMISSION_CODE_SYSTEM_ALERT_WINDOW
=
211
;
static
final
int
PERMISSION_CODE_SYSTEM_ALERT_WINDOW
=
211
;
static
final
int
PERMISSION_CODE_REQUEST_INSTALL_PACKAGES
=
212
;
//PERMISSION_GROUP
//PERMISSION_GROUP
static
final
int
PERMISSION_GROUP_CALENDAR
=
0
;
static
final
int
PERMISSION_GROUP_CALENDAR
=
0
;
...
@@ -37,6 +38,7 @@ final class PermissionConstants {
...
@@ -37,6 +38,7 @@ final class PermissionConstants {
static
final
int
PERMISSION_GROUP_BLUETOOTH
=
21
;
static
final
int
PERMISSION_GROUP_BLUETOOTH
=
21
;
static
final
int
PERMISSION_GROUP_MANAGE_EXTERNAL_STORAGE
=
22
;
static
final
int
PERMISSION_GROUP_MANAGE_EXTERNAL_STORAGE
=
22
;
static
final
int
PERMISSION_GROUP_SYSTEM_ALERT_WINDOW
=
23
;
static
final
int
PERMISSION_GROUP_SYSTEM_ALERT_WINDOW
=
23
;
static
final
int
PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES
=
24
;
@Retention
(
RetentionPolicy
.
SOURCE
)
@Retention
(
RetentionPolicy
.
SOURCE
)
@IntDef
({
@IntDef
({
...
@@ -62,7 +64,8 @@ final class PermissionConstants {
...
@@ -62,7 +64,8 @@ final class PermissionConstants {
PERMISSION_GROUP_UNKNOWN
,
PERMISSION_GROUP_UNKNOWN
,
PERMISSION_GROUP_BLUETOOTH
,
PERMISSION_GROUP_BLUETOOTH
,
PERMISSION_GROUP_MANAGE_EXTERNAL_STORAGE
,
PERMISSION_GROUP_MANAGE_EXTERNAL_STORAGE
,
PERMISSION_GROUP_SYSTEM_ALERT_WINDOW
PERMISSION_GROUP_SYSTEM_ALERT_WINDOW
,
PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES
})
})
@interface
PermissionGroup
{
@interface
PermissionGroup
{
}
}
...
...
permission_handler/android/src/main/java/com/baseflow/permissionhandler/PermissionManager.java
View file @
a219011d
...
@@ -37,7 +37,8 @@ final class PermissionManager implements PluginRegistry.ActivityResultListener,
...
@@ -37,7 +37,8 @@ final class PermissionManager implements PluginRegistry.ActivityResultListener,
public
boolean
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
public
boolean
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
if
(
requestCode
!=
PermissionConstants
.
PERMISSION_CODE_IGNORE_BATTERY_OPTIMIZATIONS
&&
if
(
requestCode
!=
PermissionConstants
.
PERMISSION_CODE_IGNORE_BATTERY_OPTIMIZATIONS
&&
requestCode
!=
PermissionConstants
.
PERMISSION_CODE_MANAGE_EXTERNAL_STORAGE
&&
requestCode
!=
PermissionConstants
.
PERMISSION_CODE_MANAGE_EXTERNAL_STORAGE
&&
requestCode
!=
PermissionConstants
.
PERMISSION_CODE_SYSTEM_ALERT_WINDOW
)
{
requestCode
!=
PermissionConstants
.
PERMISSION_CODE_SYSTEM_ALERT_WINDOW
&&
requestCode
!=
PermissionConstants
.
PERMISSION_CODE_REQUEST_INSTALL_PACKAGES
)
{
return
false
;
return
false
;
}
}
...
@@ -63,6 +64,15 @@ final class PermissionManager implements PluginRegistry.ActivityResultListener,
...
@@ -63,6 +64,15 @@ final class PermissionManager implements PluginRegistry.ActivityResultListener,
}
else
{
}
else
{
return
false
;
return
false
;
}
}
}
else
if
(
requestCode
==
PermissionConstants
.
PERMISSION_CODE_REQUEST_INSTALL_PACKAGES
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
status
=
activity
.
getPackageManager
().
canRequestPackageInstalls
()
?
PermissionConstants
.
PERMISSION_STATUS_GRANTED
:
PermissionConstants
.
PERMISSION_STATUS_DENIED
;
permission
=
PermissionConstants
.
PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES
;
}
else
{
return
false
;
}
}
else
{
}
else
{
return
false
;
return
false
;
}
}
...
@@ -241,6 +251,10 @@ final class PermissionManager implements PluginRegistry.ActivityResultListener,
...
@@ -241,6 +251,10 @@ final class PermissionManager implements PluginRegistry.ActivityResultListener,
executeIntent
(
executeIntent
(
Settings
.
ACTION_MANAGE_OVERLAY_PERMISSION
,
Settings
.
ACTION_MANAGE_OVERLAY_PERMISSION
,
PermissionConstants
.
PERMISSION_CODE_SYSTEM_ALERT_WINDOW
);
PermissionConstants
.
PERMISSION_CODE_SYSTEM_ALERT_WINDOW
);
}
else
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
&&
permission
==
PermissionConstants
.
PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES
)
{
executeIntent
(
Settings
.
ACTION_MANAGE_UNKNOWN_APP_SOURCES
,
PermissionConstants
.
PERMISSION_CODE_REQUEST_INSTALL_PACKAGES
);
}
else
{
}
else
{
permissionsToRequest
.
addAll
(
names
);
permissionsToRequest
.
addAll
(
names
);
}
}
...
@@ -343,6 +357,14 @@ final class PermissionManager implements PluginRegistry.ActivityResultListener,
...
@@ -343,6 +357,14 @@ final class PermissionManager implements PluginRegistry.ActivityResultListener,
}
}
}
}
if
(
permission
==
PermissionConstants
.
PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
return
context
.
getPackageManager
().
canRequestPackageInstalls
()
?
PermissionConstants
.
PERMISSION_STATUS_GRANTED
:
PermissionConstants
.
PERMISSION_STATUS_DENIED
;
}
}
final
int
permissionStatus
=
ContextCompat
.
checkSelfPermission
(
context
,
name
);
final
int
permissionStatus
=
ContextCompat
.
checkSelfPermission
(
context
,
name
);
if
(
permissionStatus
!=
PackageManager
.
PERMISSION_GRANTED
)
{
if
(
permissionStatus
!=
PackageManager
.
PERMISSION_GRANTED
)
{
return
PermissionConstants
.
PERMISSION_STATUS_DENIED
;
return
PermissionConstants
.
PERMISSION_STATUS_DENIED
;
...
...
permission_handler/android/src/main/java/com/baseflow/permissionhandler/PermissionUtils.java
View file @
a219011d
...
@@ -65,6 +65,8 @@ public class PermissionUtils {
...
@@ -65,6 +65,8 @@ public class PermissionUtils {
return
PermissionConstants
.
PERMISSION_GROUP_MANAGE_EXTERNAL_STORAGE
;
return
PermissionConstants
.
PERMISSION_GROUP_MANAGE_EXTERNAL_STORAGE
;
case
Manifest
.
permission
.
SYSTEM_ALERT_WINDOW
:
case
Manifest
.
permission
.
SYSTEM_ALERT_WINDOW
:
return
PermissionConstants
.
PERMISSION_GROUP_SYSTEM_ALERT_WINDOW
;
return
PermissionConstants
.
PERMISSION_GROUP_SYSTEM_ALERT_WINDOW
;
case
Manifest
.
permission
.
REQUEST_INSTALL_PACKAGES
:
return
PermissionConstants
.
PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES
;
default
:
default
:
return
PermissionConstants
.
PERMISSION_GROUP_UNKNOWN
;
return
PermissionConstants
.
PERMISSION_GROUP_UNKNOWN
;
}
}
...
@@ -231,6 +233,13 @@ public class PermissionUtils {
...
@@ -231,6 +233,13 @@ public class PermissionUtils {
permissionNames
.
add
(
Manifest
.
permission
.
SYSTEM_ALERT_WINDOW
);
permissionNames
.
add
(
Manifest
.
permission
.
SYSTEM_ALERT_WINDOW
);
break
;
break
;
case
PermissionConstants
.
PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES
:
// The REQUEST_INSTALL_PACKAGES permission is introduced in Android M, meaning we should
// not handle permissions on pre Android M devices.
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
M
&&
hasPermissionInManifest
(
context
,
permissionNames
,
Manifest
.
permission
.
REQUEST_INSTALL_PACKAGES
))
permissionNames
.
add
(
Manifest
.
permission
.
REQUEST_INSTALL_PACKAGES
);
break
;
case
PermissionConstants
.
PERMISSION_GROUP_NOTIFICATION
:
case
PermissionConstants
.
PERMISSION_GROUP_NOTIFICATION
:
case
PermissionConstants
.
PERMISSION_GROUP_MEDIA_LIBRARY
:
case
PermissionConstants
.
PERMISSION_GROUP_MEDIA_LIBRARY
:
case
PermissionConstants
.
PERMISSION_GROUP_PHOTOS
:
case
PermissionConstants
.
PERMISSION_GROUP_PHOTOS
:
...
...
permission_handler/example/android/app/src/main/AndroidManifest.xml
View file @
a219011d
...
@@ -69,6 +69,9 @@
...
@@ -69,6 +69,9 @@
<!-- Permissions options for the `system alert windows` group -->
<!-- Permissions options for the `system alert windows` group -->
<uses-permission
android:name=
"android.permission.SYSTEM_ALERT_WINDOW"
/>
<uses-permission
android:name=
"android.permission.SYSTEM_ALERT_WINDOW"
/>
<!-- Permissions options for the `request install packages` group -->
<uses-permission
android:name=
"android.permission.REQUEST_INSTALL_PACKAGES"
/>
<application
<application
android:name=
"io.flutter.app.FlutterApplication"
android:name=
"io.flutter.app.FlutterApplication"
android:icon=
"@mipmap/ic_launcher"
android:icon=
"@mipmap/ic_launcher"
...
...
permission_handler/example/lib/main.dart
View file @
a219011d
...
@@ -43,11 +43,13 @@ class _PermissionHandlerWidgetState extends State<PermissionHandlerWidget> {
...
@@ -43,11 +43,13 @@ class _PermissionHandlerWidgetState extends State<PermissionHandlerWidget> {
permission
!=
Permission
.
accessMediaLocation
&&
permission
!=
Permission
.
accessMediaLocation
&&
permission
!=
Permission
.
activityRecognition
&&
permission
!=
Permission
.
activityRecognition
&&
permission
!=
Permission
.
manageExternalStorage
&&
permission
!=
Permission
.
manageExternalStorage
&&
permission
!=
Permission
.
systemAlertWindow
;
permission
!=
Permission
.
systemAlertWindow
&&
permission
!=
Permission
.
requestInstallPackages
;
}
else
{
}
else
{
return
permission
!=
Permission
.
unknown
&&
return
permission
!=
Permission
.
unknown
&&
permission
!=
Permission
.
mediaLibrary
&&
permission
!=
Permission
.
mediaLibrary
&&
permission
!=
Permission
.
photos
&&
permission
!=
Permission
.
photos
&&
permission
!=
Permission
.
photosAddOnly
&&
permission
!=
Permission
.
reminders
;
permission
!=
Permission
.
reminders
;
}
}
})
})
...
...
permission_handler/pubspec.yaml
View file @
a219011d
name
:
permission_handler
name
:
permission_handler
description
:
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
description
:
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
version
:
7.
1.1
version
:
7.
2.0
homepage
:
https://github.com/baseflowit/flutter-permission-handler
homepage
:
https://github.com/baseflowit/flutter-permission-handler
flutter
:
flutter
:
...
@@ -16,7 +16,7 @@ dependencies:
...
@@ -16,7 +16,7 @@ dependencies:
flutter
:
flutter
:
sdk
:
flutter
sdk
:
flutter
meta
:
^1.3.0
meta
:
^1.3.0
permission_handler_platform_interface
:
^3.
3
.0
permission_handler_platform_interface
:
^3.
4
.0
dev_dependencies
:
dev_dependencies
:
flutter_test
:
flutter_test
:
...
...
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