Android 6.0(コードネーム: Marshmallow)以降のバージョンでは、Androidユーザーはアプリケーションごとにリソースに対するアクセス許可/不許可の実行パーミッションを制御することができるようになりました。 そしてAndroidアプリの開発者は、これらのパーミッションを適切に処理することにより、アプリケーションのアクセシビリティを維持する必要があります。
詳細はdocwikiの「Android Permission Model(英語)」ドキュメントをを参照してください。さらにIDEでプロジェクトのアプリのパーミッションを設定する方法については、こちらを参照ください。
DelphiでFireMonkeyを利用してAndroidアプリケーションを作成すると、Androidでのアクセス許可要求、アクセス許可の結果、およびユーザーに表示するメッセージを処理する適切な関数を作成することにより、アプリケーションのアクセス許可を制御できます。
以下は、DelphiでAndroidのパーミッションを要求する標準アプローチによる簡単なコード例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
procedure TFormMain.RequestPermissions; begin {$IFDEF ANDROID} FPermission_SEND := JStringToString(TJManifest_permission.JavaClass.SEND_SMS); FPermission_READ := JStringToString(TJManifest_permission.JavaClass.READ_SMS); FPermission_RECEIVE := JStringToString(TJManifest_permission.JavaClass.RECEIVE_SMS); PermissionsService.RequestPermissions([FPermission_SEND, FPermission_READ, FPermission_RECEIVE], RequestResult, DisplayRationale) {$ENDIF} end; procedure TFormMain.RequestResult(Sender: TObject; const APermissions: TArray; const AGrantResults: TArray); begin {$IFDEF ANDROID} if (AGrantResults[0] = TPermissionStatus.Granted) and (AGrantResults[1] = TPermissionStatus.Granted) and (AGrantResults[2] = TPermissionStatus.Granted) then begin end {$ENDIF} end; |
しかし上記のコード例以外にも、Androidのパーミッションを要求する別のアプローチがあります。
「Mobile Permissions Component for Android」を利用すると、FireMonkeyの標準アプローチを利用するよりも少ないコードで簡単に管理することができます。
このコンポーネントを利用するメリットは、Android上でのリソースパーミッションの要求が簡単にできることです。ほんの数行のコードを書くだけで、Androidアプリケーションでパーミッションを要求する処理を、より簡素化することができます。
以下は、Mobile Permissions Component for Androidを利用したDelphiのコード例です。
1 2 3 4 5 6 7 8 9 10 11 12 |
procecure TForm1.OnCreate(Sender: TObject); begin MobilePermissions1.[CATEGORY].[Permission] := True; MobilePermissions1.Apply; end; procedure TForm1.Button1Click(Sender: TObject); begin MobilePermissions1.Dangerous.CAMERA := True; MobilePermissions1.Standard.AccessNetworkState := True; MobilePermissions1.Apply; end; |
上記2つのコード例を比べると、同じAndroidでパーミッションを要求する処理においてFireMonkeyの標準アプローチよりもMobile Permissions Componentを利用したほうが、記述するコードが少なく、簡素化されていることがわかります。
Mobile Permissions Component for Androidは、GetItパッケージマネージャを開いて、検索ボックスから”Permissions”というキーワードで検索すると見つかりますので、これを選択してインストールすることができます。
Mobile Permissions Component for Androidは、無償で利用可能なオープンソースです。なお、エンバカデロではこのライブラリに関するテクニカルサポートサービスは提供しておりません。
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition