国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Delphi v11 安卓權(quán)限申請

這篇具有很好參考價值的文章主要介紹了Delphi v11 安卓權(quán)限申請。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

問題

Delphi 10.4 的安卓權(quán)限申請代碼,在 Delphi 11 下面編譯無法通過。

原因

原因是里面有幾個變量類型的定義有所不同。

procedure TDmBLE.RequestPermissionsResult(Sender: TObject;  const APermissions: TArray<string>;  const AGrantResults: TArray<TPermissionStatus>);

上述代碼是 Delphi 10.4 的,里面有兩個類型需要更改:

1.?TArray<string> 更改為:TClassicStringDynArray;

2.?TArray<TPermissionStatus> 更改為:TClassicPermissionStatusDynArray

procedure DisplayRationale(Sender: TObject; const APermissions: TArray<string>; const APostRationaleProc: TProc);

同樣,上面這個函數(shù)里面的?TArray<string> 更改為:TClassicStringDynArray;

適用于 Delphi 11 的安卓權(quán)限動態(tài)申請的完整代碼

我把代碼封裝到一個單獨的 DataModule 里面了。這樣方便在不同的項目里重復使用。

unit UDmPermissions;
// 安卓的權(quán)限申請代碼 Delphi 11
interface

uses
  System.SysUtils, System.Types, System.Classes, System.Permissions, FMX.DialogService, System.UITypes;

type
  TDmPermissions = class(TDataModule)
  private
    { Private declarations }
    FGotPermission: TNotifyEvent;

    procedure RequestPermissionsResult(Sender: TObject; const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray);
    procedure DisplayRationale(Sender: TObject; const APermissions: TClassicStringDynArray; const APostRationaleProc: TProc);

    procedure DoGotPermissions;
  public
    { Public declarations }

    property OnGotPermissions: TNotifyEvent read FGotPermission write FGotPermission;
  end;

var
  DmPermissions: TDmPermissions;

implementation

{%CLASSGROUP 'FMX.Controls.TControl'}

{$R *.dfm}

{ TDmPermissions }

procedure TDmPermissions.DisplayRationale(Sender: TObject;
  const APermissions: TClassicStringDynArray; const APostRationaleProc: TProc);
begin
  //Rationale: 理由
  TDialogService.ShowMessage('We need to be given permission to discover BLE devices',
    procedure(const AResult: TModalResult)
    begin
      APostRationaleProc;
    end)
end;

procedure TDmPermissions.DoGotPermissions;
begin
  if Assigned(FGotPermission) then FGotPermission(Self);
end;

procedure TDmPermissions.RequestPermissionsResult(Sender: TObject;
  const APermissions: TClassicStringDynArray;
  const AGrantResults: TClassicPermissionStatusDynArray);
begin
  if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
    Self.DoGotPermissions
  else
    TDialogService.ShowMessage('Cannot start BLE scan as the permission has not been granted');
end;

end.

又及:

上述代碼中,DoGotPermissions 方法,用于調(diào)用這個模塊的地方,當用戶在申請權(quán)限的界面上通過了權(quán)限申請后,要執(zhí)行的代碼,通過這個事件方法調(diào)用。文章來源地址http://www.zghlxwxcb.cn/news/detail-829192.html

到了這里,關(guān)于Delphi v11 安卓權(quán)限申請的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Android權(quán)限申請之動態(tài)申請權(quán)限

    Android權(quán)限申請之動態(tài)申請權(quán)限

    先上圖: 對于一些危險權(quán)限在AndroidManifest清單文件中申請之后,還需要得到用戶的許可并打開,才算是真正的開啟了這個權(quán)限。所以可以使用動態(tài)申請權(quán)限,對于某個功能,如果需要開啟某個權(quán)限,在用戶使用它之前,彈窗提示用戶是否要開啟這個權(quán)限。 動態(tài)申請權(quán)限大致

    2024年02月11日
    瀏覽(22)
  • Android動態(tài)申請權(quán)限(運行時申請權(quán)限)

    Android動態(tài)申請權(quán)限(運行時申請權(quán)限)

    目錄 1.需要動態(tài)申請權(quán)限的原因 2.Android權(quán)限動態(tài)申請 1.需要動態(tài)申請權(quán)限的原因 ? 首先,Android權(quán)限分為大致兩類,一類是普通權(quán)限,一類是危險權(quán)限,準確地講其實還有一些特殊的權(quán)限,不過這些權(quán)限使用得相對較少,我們大致跳過.對于普通權(quán)限,系統(tǒng)會自動幫我們進行授權(quán),由于

    2024年02月20日
    瀏覽(32)
  • Android申請權(quán)限(相機權(quán)限和讀寫權(quán)限)

    Android申請權(quán)限(相機權(quán)限和讀寫權(quán)限)

    開發(fā)一個相機應(yīng)用,需要申請三個權(quán)限:相機、讀文件、寫文件。 初步授權(quán)成功

    2024年02月11日
    瀏覽(27)
  • Android之動態(tài)申請權(quán)限

    Android之動態(tài)申請權(quán)限

    Android 6.0 (API 23) 之前應(yīng)用的權(quán)限在安裝時全部授予,運行時應(yīng)用不再需要詢問用戶。在 Android 6.0 或更高版本對權(quán)限進行了分類,對某些涉及到用戶隱私的權(quán)限可在運行時根據(jù)用戶的需要動態(tài)授予。 Android 6.0以下,在AndroidManifest.xml文件中注冊權(quán)限即可。 Android 6.0及其以后,既

    2024年02月04日
    瀏覽(22)
  • Android動態(tài)申請權(quán)限

    一、在AndroidManifest清單文件中聲明要開啟的權(quán)限 二、代碼中動態(tài)申請相關(guān)權(quán)限

    2024年02月06日
    瀏覽(18)
  • Android 開發(fā)中的權(quán)限申請

    ??????? 我們都知道,從 Android 6.0 開始,部分危險權(quán)限在 xml 注冊的同時,還需要動態(tài)申請。 1、需要動態(tài)申請的權(quán)限 ????????需要動態(tài)申請的權(quán)限主要分為這 9 類,當然每類中可能不止一個權(quán)限,但只要動態(tài)申請一個就默認獲取整個類別的權(quán)限。 2、申請單個權(quán)限 ??

    2024年02月09日
    瀏覽(27)
  • android 12 SD動態(tài)申請讀寫權(quán)限

    android 12 SD動態(tài)申請讀寫權(quán)限

    android 12不僅需要在AndroidManifest.xml申請讀寫權(quán)限也需要在代碼中動態(tài)的申請 關(guān)于如何動態(tài)申請讀寫權(quán)限僅需要兩步 在AndroidManifest.xml文件中申請讀寫權(quán)限 在代碼的啟動MainActivity中動態(tài)申請方法 下面是關(guān)于動態(tài)權(quán)限申請的Manifest.class類大家有興趣可以去了解下

    2024年02月11日
    瀏覽(26)
  • Android 獲取SIM卡號碼權(quán)限申請

    在AndroidManifest.xml中添加如下權(quán)限 uses-permission android:name=\\\"android.permission.READ_PHONE_STATE\\\"/ 如果你只在清單文件中添加權(quán)限卻沒有在代碼中獲取權(quán)限,代碼還是會報錯的。 報錯原因: android 6.0以上增加了動態(tài)獲取權(quán)限api,需要動態(tài)獲取手機的權(quán)限。彈出對話框詢問用戶,請求用戶

    2024年02月08日
    瀏覽(21)
  • Unity 在Unity端申請Android權(quán)限

    Unity 在Unity端申請Android權(quán)限

    前段時間還在職的時候,遇到這么一個問題:SDK首次調(diào)起相機接口進行拍照的時候,會調(diào)起2次相機。并在第2次拍照后閃退。 分析了一下,都是發(fā)生在首次獲取權(quán)限時才會發(fā)生,拿到權(quán)限就不會了。并且2臺會發(fā)生這種情況的Android版本都是13。猜測是SDK獲取權(quán)限接口沒有適配好

    2024年02月15日
    瀏覽(19)
  • Android Permission 權(quán)限申請,EasyPermission和其他三方庫

    在Android的實際開發(fā)中,經(jīng)常會因為需求的實現(xiàn),需要申請用戶權(quán)限。 今天總結(jié)下Android中常用的權(quán)限申請。 一、基本介紹和流程 Android中的權(quán)限申請是通過應(yīng)用程序與操作系統(tǒng)之間的交互實現(xiàn)的。在Android中,每個應(yīng)用程序都被賦予了一組預定義的權(quán)限,這些權(quán)限定義了應(yīng)用程

    2024年02月13日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包