|
@@ -4,6 +4,10 @@ interface
|
|
|
|
|
|
uses
|
|
|
System.Messaging,
|
|
|
+ {$IF DEFINED(ANDROID) AND (RTLVersion >= 33)}
|
|
|
+ Androidapi.JNI.Os,
|
|
|
+ System.Permissions,
|
|
|
+ {$ENDIF}
|
|
|
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
|
|
|
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
|
|
|
FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo;
|
|
@@ -22,8 +26,13 @@ type
|
|
|
procedure btn4Click(Sender: TObject);
|
|
|
procedure FormCreate(Sender: TObject);
|
|
|
procedure FormDestroy(Sender: TObject);
|
|
|
+ procedure FormShow(Sender: TObject);
|
|
|
private
|
|
|
{ Private declarations }
|
|
|
+ {$IF DEFINED(ANDROID) AND (RTLVersion >= 33)}
|
|
|
+ procedure PermissionsCheck;
|
|
|
+ procedure PermissionsResultHandler(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>);
|
|
|
+ {$ENDIF}
|
|
|
procedure DoReceivedImagePath(const Sender: TObject; const M: TMessage);
|
|
|
procedure DoCancelReceivingImage(const Sender: TObject; const M: TMessage);
|
|
|
public
|
|
@@ -267,4 +276,33 @@ begin
|
|
|
TMessageManager.DefaultManager.Unsubscribe(TMessageCancelReceivingImage, DoCancelReceivingImage);
|
|
|
end;
|
|
|
|
|
|
+procedure TForm1.FormShow(Sender: TObject);
|
|
|
+begin
|
|
|
+ {$IF DEFINED(ANDROID) AND (RTLVersion >= 33)}
|
|
|
+ PermissionsCheck;
|
|
|
+ {$ENDIF}
|
|
|
+end;
|
|
|
+
|
|
|
+{$IF DEFINED(ANDROID) AND (RTLVersion >= 33)}
|
|
|
+procedure TForm1.PermissionsCheck;
|
|
|
+begin
|
|
|
+ if TJBuild_VERSION.JavaClass.SDK_INT >= 23 then
|
|
|
+ PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.CAMERA),
|
|
|
+ JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE),
|
|
|
+ JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE)], PermissionsResultHandler);
|
|
|
+end;
|
|
|
+
|
|
|
+procedure TForm1.PermissionsResultHandler(const APermissions: TArray<string>;
|
|
|
+ const AGrantResults: TArray<TPermissionStatus>);
|
|
|
+begin
|
|
|
+ if PermissionsService.IsEveryPermissionGranted(
|
|
|
+ [JStringToString(TJManifest_permission.JavaClass.CAMERA),
|
|
|
+ JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE),
|
|
|
+ JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE)]) then
|
|
|
+ mmo1.Lines.Add('Permission granted')
|
|
|
+ else
|
|
|
+ mmo1.Lines.Add('Permission not granted');
|
|
|
+end;
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
end.
|