LoginSignup
5
2

More than 5 years have passed since last update.

Delphi で Android Notification (通知)

Last updated at Posted at 2018-08-24

通知って、よくあるアレですよアレ
こーゆーやつ
scshot.png

Android Developer の通知のドキュメント を読むとコードで一生懸命書いていますが、Delphi の場合は TNotificationCenter コンポーネントがあり、プロパティの設定とメソッドを実行するだけで、楽に通知を行うことができます

サンプルアプリケーション

使用した Delphi のバージョンは 10.2 Tokyo (release3) Community Edition を使っています
Android は Nexus 5 (Android OS 6.0.1) を使いました

ボタンを押すと通知を行なうという簡単なサンプルです
使うコンポーネントは 2 つ、TButton と TNotificationCenter のみ

新規でマルチデバイスアプリケーションを作成します(空のアプリケーションを選択します)
ツールパレットから TButton をフォーム上にドラックアンドドロップで配置します
ツールパレットから TNotificationCenter をフォーム上にドラックアンドドロップで配置します
設計画面はこんな感じです
notice01.png

設計画面の Button1 をダブルクリックして、Button1 の OnClick イベントに以下のコードを記述します

procedure TForm2.Button1Click(Sender: TObject);
// 通知メッセージは TNotification で作成します
var
  mNotice: TNotification;
begin
  mNotice := NotificationCenter1.CreateNotification;
  mNotice.Name := 'NoticeTest';
  mNotice.Title := '通知タイトル';
  mNotice.AlertBody := '通知内容';

// 通知
  NotificationCenter1.PresentNotification(mNotice);

  mNotice.DisposeOf;  // デストラクタ強制実行
end;

通知をタップした際の処理は、設計画面のNotificationCenter1 をダブルクリックして生成される TNotificationCenter の OnReceiveLocalNotification イベントに記述することができます
このサンプルでは簡単に ShowMessage を使ってタップされたことを表示します
また、パラメータで返却されている ANotification(TNotification) の Name プロパティを表示して、どの通知かわかるようにしています

procedure TForm2.NotificationCenter1ReceiveLocalNotification(Sender: TObject;
  ANotification: TNotification);
begin
  showMessage(ANotification.Name + ':通知がタップされました');
end;

ビルドして実行

設計したとおりの画面のアプリが起動します
Screenshot_20180824-145111.png

ボタンを押すと通知が行なわれ、左上に通知があったことを示すアイコンが表示されます
Screenshot_20180824-145132.png

TNotification に設定したとおりの通知内容
Screenshot_20180824-145151.png

この通知をタップすると
Screenshot_20180824-145205.png
と ShowMessage で記載した内容が表示されます

docwiki 上のドキュメント

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2