Установить ярлык приложения на рабочий стол в Android, используя RAD Studio

Установка иконки приложения на рабочий стол всегда украшает функционал самого приложения, тем более реализация его не так сложна.

Для начала добавим в манифест разрешение на установку и удаление ярлыка. Для этого открываем в обычном текстовом редакторе файл AndroidManifest.template.xml в корне нашего приложения и вносим туда такие записи:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>

В нашем приложении подключаем следующие модули:

implementation
{$IFDEF ANDROID}
uses
Androidapi.JNI.GraphicsContentViewText, FMX.Helpers.Android,AndroidApi.Helpers,
Androidapi.JNI.JavaTypes, FMX.Platform.Android, AndroidApi.JniBridge, AndroidApi.Jni.App,
AndroidAPI.jni.OS;
{$ENDIF}

Подключаем именно так, иначе RAD Studio выведет ошибку о неправильном формате модулей.

Установка ярлыка реализуется в виде одной процедуры, в примере это событие по клику кнопки TSpeedButton:

procedure TForm1.SpeedButton1Click(Sender: TObject);
{$IFDEF ANDROID}
var
ShortcutIntent: JIntent;
addIntent: JIntent;
wIconIdentifier : integer;
wIconResource : JIntent_ShortcutIconResource;
{$ENDIF}
begin
{$IFDEF ANDROID}
 
ShortcutIntent := TJIntent.JavaClass.init(SharedActivityContext, SharedActivityContext.getClass);
ShortcutIntent.setAction(TJIntent.JavaClass.ACTION_MAIN);
addIntent := TJIntent.Create;
addIntent.putExtra(TJIntent.JavaClass.EXTRA_SHORTCUT_INTENT, TJParcelable.Wrap((shortcutIntent as ILocalObject).GetObjectID));
addIntent.putExtra(TJIntent.JavaClass.EXTRA_SHORTCUT_NAME, StringToJString(Application.Title));
addIntent.setAction(StringToJString('com.android.launcher.action.INSTALL_SHORTCUT'));
wIconIdentifier := SharedActivity.getResources.getIdentifier(StringToJString('ic_launcher'), StringToJString('drawable'), StringToJString('com.embarcadero.Project1'));
wIconResource := TJIntent_ShortcutIconResource.JavaClass.fromContext(SharedActivityContext, wIconIdentifier);
addIntent.putExtra(TJIntent.JavaClass.EXTRA_SHORTCUT_ICON_RESOURCE, TJParcelable.Wrap((wIconResource as ILocalObject).GetObjectID));
SharedActivityContext.sendBroadcast(addIntent);
{$ENDIF}
end;

где в строке ‘com.embarcadero.Project1’ — Project1 — имя нашего проекта.

Ярлык будет устанавливаться каждый раз, когда будет нажиматься кнопка, поэтому с ограничением установок нужно предпринимать отдельные шаги.

Иконки для приложения загружаются в окне Project->Project Options. Нужно выбрать платформу Android и загрузить иконки с 5 разными размерами.

icons

Вам понравиться

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *