Androidのホーム画面にショートカットを作成する(Android8.0以降) ~Delphiでお手軽プログラミング
Delphiを起動して新規作成を行う
Delphiを起動し、ファイル→新規作成→マルチデバイスアプリケーションをクリックし、空のアプリケーションを選択してOKボタンを押してプロジェクトを作成します。TButtonを1つ配置します。
ソースコードを記述する
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); procedure Button1Click(Sender: TObject); private { private 宣言 } public { public 宣言 } end; var Form1: TForm1; implementation {$R *.fmx} uses Androidapi.Helpers, Androidapi.JNI.App, Androidapi.JNI.GraphicsContentViewText ,Androidapi.JNI.JavaTypes, Androidapi.JNI.OS, Androidapi.JNIBridge, FMX.Platform.Android; procedure TForm1.Button1Click(Sender: TObject); var SCIntent:JIntent; wIconIdentifier : integer; wIconResource : JIntent_ShortcutIconResource; sm:JShortcutManager; sib:JShortcutInfo_Builder; info:JShortcutInfo; ico:JIcon; begin //本アプリケーションを起動するIntent SCIntent := TJIntent.JavaClass.init( TAndroidHelper.Context.getApplicationContext, MainActivity.getClass); SCIntent.setAction(TJIntent.JavaClass.ACTION_MAIN); //アイコンのリソースIDを取得 wIconIdentifier := TAndroidHelper.Activity.getResources.getIdentifier( StringToJString('ic_launcher'), //リソース名 StringToJString('drawable'), TAndroidHelper.Context.getApplicationContext.getPackageName ); wIconResource :=TJIntent_ShortcutIconResource.JavaClass.fromContext( TAndroidHelper.Context, wIconIdentifier ); ico:=TJIcon.JavaClass.createWithResource( TAndroidHelper.Context.getPackageName, wIconIdentifier ); sib:=TJShortcutInfo_Builder.JavaClass.init( TAndroidHelper.Context.getApplicationContext, TJIntent.JavaClass.ACTION_MAIN ); sib.setShortLabel(StrToJCharSequence('ショートカット名')); sib.setLongLabel(StrToJCharSequence('ショートカット名')); sib.setDisabledMessage(StrToJCharSequence('使えない時名')); sib.setIcon(ico); sib.setIntent(SCIntent); info:=sib.build(); sm:=TJShortcutManager.Wrap( TAndroidHelper.Activity.getSystemService(TJContext.JavaClass.SHORTCUT_SERVICE) ); //ホーム画面にショートカットを作成する sm.requestPinShortcut(info,nil); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin if Key = vkHardwareBack then Key := 0; end; end.
実行する


