本文整理自网络,侵删。
这是使用Delphi 10 Seattle Android应用程序在主屏幕上创建快捷方式的方法。
要在主屏幕上创建快捷方式,您需要以下权限:
com.android.launcher.permission.INSTALL_SHORTCUT由于无法在项目选项屏幕上设置此权限,因此请直接编辑“ AndroidManifest.template.xml”。
<?xml version="1.0" encoding="utf-8"?><!-- BEGIN_INCLUDE(manifest) --><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%">
<!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /><%uses-permission%><uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <=追加 <uses-feature android:glEsVersion="0x00020000" android:required="True"/>创建快捷方式的代码如下所示:
uses Androidapi.Helpers, // SharedActivity Androidapi.JNI.Os, // TJParcelable Androidapi.JNI.App, // TAndroidHelper.GetJActivity Androidapi.JNIBridge, // ILocalObject Androidapi.JNI.GraphicsContentViewText, // JIntent Androidapi.JNI.JavaTypes; // StringToJString
procedure TForm1.Button1Click(Sender: TObject);const AppName = 'com.embarcadero.Project1';var ShortcutIntent, Intent: JIntent; wIconIdentifier: Integer; wIconResource: JIntent_ShortcutIconResource;begin // 启动应用程序的Intent ShortcutIntent := TJIntent.JavaClass.init(TAndroidHelper.Context, TAndroidHelper.Context.getClass); ShortcutIntent.setAction(TJIntent.JavaClass.ACTION_MAIN);
// 用于创建快捷键的Intent Intent := TJIntent.Create; Intent.setAction (StringToJString('com.android.launcher.action.INSTALL_SHORTCUT'));
// 指定在快捷键点击时启动的Intent Intent.putExtra(TJIntent.JavaClass.EXTRA_SHORTCUT_INTENT, TJParcelable.Wrap((ShortcutIntent as ILocalObject).GetObjectID)); Intent.putExtra(TJIntent.JavaClass.EXTRA_SHORTCUT_NAME, StringToJString(Application.Title));
wIconIdentifier := TAndroidHelper.Activity.getResources.getIdentifier (StringToJString('ic_launcher'), StringToJString('drawable'), StringToJString(AppName)); wIconResource := TJIntent_ShortcutIconResource.JavaClass.fromContext (TAndroidHelper.Context, wIconIdentifier); Intent.putExtra(TJIntent.JavaClass.EXTRA_SHORTCUT_ICON_RESOURCE, TJParcelable.Wrap((wIconResource as ILocalObject).GetObjectID));
// 如果没有这个的话,即使已经有了主页图标,也会再创建 Intent.putExtra(StringToJString('duplicate'), False);
TAndroidHelper.Context.sendBroadcast(Intent);end;运行此代码将在主屏幕上创建一个快捷方式。
相关阅读 >>
Delphi winapi: isiconic、iszoomed - 分别判断窗口是否已最小化、最大化
Delphi getprocesshandleasname 获取进程句柄
Delphi 用正则表达式获取指定的字符串续取出所有符合要求的字符串
更多相关阅读请进入《Delphi》频道 >>