【问题标题】:Delphi/Firemonkey How to call Settings.System.canWrite(context) (Android)Delphi/Firemonkey 如何调用 Settings.System.canWrite(context) (Android)
【发布时间】:2020-06-26 06:05:48
【问题描述】:

我正在使用 Delphi 10.3 Community Edition,并希望在我的应用程序中使用 WRITE_SETTINGS 来设置亮度。 我可以让它设法实现这个过程来调用设置对话框:

procedure RequestWriteSettings;
var
  Intent: JIntent;
begin
  Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_WRITE_SETTINGS);
  TAndroidHelper.Activity.startActivity(Intent);
end;

我可以在我的应用程序中调用此过程,出现对话框,我可以设置必要的权限。 但我不想永久调用此过程,因为这对用户不友好。 我需要检查是否已经设置了 WRITE_SETTINGS 权限,但我不知道如何在 Delphi/Firemonkey 中实现。

我能找到的是必须调用“Settings.System.canWrite(context)”函数,但我只能找到 java 的示例。 在 Delphi 中调用这些 java 例程并不容易。我已经搜索了几个星期并尝试了“我自己的事情”,但仍然没有成功。

谁能提供在 Delphi 中如何调用此例程的代码行?

提前非常感谢! 页面

【问题讨论】:

  • 对不起,但这并没有任何帮助。我已经尝试了很多示例,但没有一个反映我描述的问题。

标签: android delphi firemonkey android-permissions


【解决方案1】:

检查 WRITE_SETTINGS 的示例代码:

uses
  Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.Provider, Androidapi.JNI.Net, Androidapi.Helpers;

procedure TForm1.RequestWriteSettingsButtonClick(Sender: TObject);
begin
  if not TJSettings_System.JavaClass.canWrite(TAndroidHelper.Context) then
    StartWritePermissionsActivity
  else
    ShowMessage('System says app can write settings');
end;

procedure TForm1.StartWritePermissionsActivity;
var
  LIntent: JIntent;
begin
  LIntent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_WRITE_SETTINGS);
  LIntent.setData(TJnet_Uri.JavaClass.parse(StringToJString('package:').concat(TAndroidHelper.Context.getPackageName)));
  TAndroidHelper.Context.startActivity(LIntent);
end;

【讨论】:

  • 非常感谢 Dave,这就是我一直在寻找的东西!
  • @XingFuZhuanYun 选择答案奖励戴夫
【解决方案2】:

与此同时,我为自己找到了解决方案,但我认为 Dave 的更好。 ;-)

这就是我在“试错”方法中发现的:

function HasWriteSettings: Boolean; begin // Call canWrite to check for permission WRITE_SETTINGS Result := TJSettings_System.JavaClass.canWrite(TAndroidHelper.Context.getApplicationContext);

end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    相关资源
    最近更新 更多