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
bea04e24
Commit
bea04e24
authored
May 18, 2021
by
Jan-Derk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added "REQUEST_INSTALL_PACKAGES" permission.
parent
25b10ca8
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 @
bea04e24
## 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 @
bea04e24
...
@@ -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 @
bea04e24
...
@@ -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 @
bea04e24
...
@@ -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
.
M
&&
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 @
bea04e24
...
@@ -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 @
bea04e24
...
@@ -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 @
bea04e24
...
@@ -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 @
bea04e24
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