Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiRAD Studio

Androidアプリの実行パーミッションを簡単に制御可能な「Mobile Permissions Component」

easily-control-application-permissions-with-mobile-permissions-component-ja

Android 6.0(コードネーム: Marshmallow)以降のバージョンでは、Androidユーザーはアプリケーションごとにリソースに対するアクセス許可/不許可の実行パーミッションを制御することができるようになりました。 そしてAndroidアプリの開発者は、これらのパーミッションを適切に処理することにより、アプリケーションのアクセシビリティを維持する必要があります。

詳細はdocwikiの「Android Permission Model(英語)」ドキュメントをを参照してください。さらにIDEでプロジェクトのアプリのパーミッションを設定する方法については、こちらを参照ください。

DelphiでFireMonkeyを利用してAndroidアプリケーションを作成すると、Androidでのアクセス許可要求、アクセス許可の結果、およびユーザーに表示するメッセージを処理する適切な関数を作成することにより、アプリケーションのアクセス許可を制御できます。

以下は、DelphiでAndroidのパーミッションを要求する標準アプローチによる簡単なコード例です。

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のコード例です。

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-ja-9573574

Mobile Permissions Component for Androidは、無償で利用可能なオープンソースです。なお、エンバカデロではこのライブラリに関するテクニカルサポートサービスは提供しておりません。

Kai for RAD Studio is Now Available! Special Live Webinar: Introducing Kai - A New Chapter for RAD Studio RAD Studio 13.1 Florence Now Available

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES