@@ -117,9 +117,15 @@ public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
117117 }
118118 } else if (requestCode == PermissionConstants .PERMISSION_CODE_REQUEST_INSTALL_PACKAGES ) {
119119 if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
120- status = activity .getPackageManager ().canRequestPackageInstalls ()
121- ? PermissionConstants .PERMISSION_STATUS_GRANTED
122- : PermissionConstants .PERMISSION_STATUS_DENIED ;
120+ try {
121+ status = activity .getPackageManager ().canRequestPackageInstalls ()
122+ ? PermissionConstants .PERMISSION_STATUS_GRANTED
123+ : PermissionConstants .PERMISSION_STATUS_DENIED ;
124+ } catch (SecurityException e ) {
125+ // App has not declared REQUEST_INSTALL_PACKAGES in manifest.
126+ Log .d (PermissionConstants .LOG_TAG , "Cannot call canRequestPackageInstalls: " + e .getMessage ());
127+ status = PermissionConstants .PERMISSION_STATUS_DENIED ;
128+ }
123129 permission = PermissionConstants .PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES ;
124130 } else {
125131 return false ;
@@ -532,10 +538,16 @@ private int determinePermissionStatus(final @PermissionConstants.PermissionGroup
532538 permissionStatuses .add (status );
533539 } else if (permission == PermissionConstants .PERMISSION_GROUP_REQUEST_INSTALL_PACKAGES ) {
534540 if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
535- int status = context .getPackageManager ().canRequestPackageInstalls ()
536- ? PermissionConstants .PERMISSION_STATUS_GRANTED
537- : PermissionConstants .PERMISSION_STATUS_DENIED ;
538- permissionStatuses .add (status );
541+ try {
542+ int status = context .getPackageManager ().canRequestPackageInstalls ()
543+ ? PermissionConstants .PERMISSION_STATUS_GRANTED
544+ : PermissionConstants .PERMISSION_STATUS_DENIED ;
545+ permissionStatuses .add (status );
546+ } catch (SecurityException e ) {
547+ // App has not declared REQUEST_INSTALL_PACKAGES in manifest.
548+ Log .d (PermissionConstants .LOG_TAG , "Cannot call canRequestPackageInstalls: " + e .getMessage ());
549+ permissionStatuses .add (PermissionConstants .PERMISSION_STATUS_DENIED );
550+ }
539551 }
540552 } else if (permission == PermissionConstants .PERMISSION_GROUP_ACCESS_NOTIFICATION_POLICY ) {
541553 NotificationManager notificationManager = (NotificationManager ) context .getSystemService (Application .NOTIFICATION_SERVICE );
0 commit comments