没有Oustement Permissions的超载版本'可以用这些论点给出的允许更多
使用Delphi 10,我使用了一个程序在ongreate事件上为Android应用提供多个权限:
var
permBatt, permRead, permWrite, permBlue, permAccess, permCoarse: string;
begin
{$IFDEF ANDROID}
// Request permissions
permBatt := JStringToString(TJManifest_permission.JavaClass.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
permRead := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);
permWrite := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE);
permBlue := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH);
permAccess := JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION);
permCoarse := JStringToString(TJManifest_permission.JavaClass.ACCESS_COARSE_LOCATION);
PermissionsService.RequestPermissions([permBatt, permRead, permWrite, permBlue, permAccess, permCoarse], PermissionRequestResult);
{$ENDIF}
现在在Delphi 11 Alexandria,我收到了一个编译器错误
[DCC Error] data.main.pas(237): E2250 There is no overloaded version of 'RequestPermissions' that can be called with these arguments
,我尝试使用permississionservice.requeStermiss.requepperrismis.requequestpersimper。 :
const
permBatt = 'android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS';
permRead = 'android.permission.READ_EXTERNAL_STORAGE';
permWrite = 'android.permission.WRITE_EXTERNAL_STORAGE';
permBlue = 'android.permission.BLUETOOTH';
permAccess = 'android.permission.ACCESS_FINE_LOCATION';
permCoarse = 'android.permission.ACCESS_COARSE_LOCATION';
{$IFDEF ANDROID}
PermissionsService.RequestPermissions([permBatt, permRead, permWrite, permBlue, permAccess, permCoarse ],
procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
begin
if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
TDialogService.ShowMessage('OK permessi')
else
begin
TDialogService.ShowMessage('Location permission not granted');
end;
end);
{$ENDIF}
但是错误仍然存在,有什么想法吗?谢谢你
with Delphi 10 i used a procedure to give android app multiple permissions on a onCreate Event:
var
permBatt, permRead, permWrite, permBlue, permAccess, permCoarse: string;
begin
{$IFDEF ANDROID}
// Request permissions
permBatt := JStringToString(TJManifest_permission.JavaClass.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
permRead := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);
permWrite := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE);
permBlue := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH);
permAccess := JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION);
permCoarse := JStringToString(TJManifest_permission.JavaClass.ACCESS_COARSE_LOCATION);
PermissionsService.RequestPermissions([permBatt, permRead, permWrite, permBlue, permAccess, permCoarse], PermissionRequestResult);
{$ENDIF}
now in delphi 11 Alexandria I receive a compiler error
[DCC Error] data.main.pas(237): E2250 There is no overloaded version of 'RequestPermissions' that can be called with these arguments
I tried use the new singnature of PermissionService.RequestPermission passing a procedure as a paramether and using the new Delphi constants:
const
permBatt = 'android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS';
permRead = 'android.permission.READ_EXTERNAL_STORAGE';
permWrite = 'android.permission.WRITE_EXTERNAL_STORAGE';
permBlue = 'android.permission.BLUETOOTH';
permAccess = 'android.permission.ACCESS_FINE_LOCATION';
permCoarse = 'android.permission.ACCESS_COARSE_LOCATION';
{$IFDEF ANDROID}
PermissionsService.RequestPermissions([permBatt, permRead, permWrite, permBlue, permAccess, permCoarse ],
procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
begin
if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
TDialogService.ShowMessage('OK permessi')
else
begin
TDialogService.ShowMessage('Location permission not granted');
end;
end);
{$ENDIF}
but the error is still there, any idea? Thank you so moutch
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我找到了正确的解决方案,希望它会有所帮助
I found the right solution and i hope it'll help