delphi 10 Seattle的Android应用程序的主屏幕上创建快捷方式  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 10 Seattle的Android应用程序的主屏幕上创建快捷方式


在Delphi 10 Seattle的Android应用程序的主屏幕上创建快捷方式

这是使用Delphi 10 Seattle Android应用程序在主屏幕上创建快捷方式的方法。

要在主屏幕上创建快捷方式,您需要以下权限:

com.android.launcher.permission.INSTALL_SHORTCUT
由于无法在项目选项屏幕上设置此权限,因此请
直接编辑“ AndroidManifest.template.xml”。

        package="%package%"
        android:versionCode="%versionCode%"
        android:versionName="%versionName%"
        android:installLocation="%installLocation%">

   
   
<%uses-permission%>
<=追加
   
创建快捷方式的代码如下所示:

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;
运行此代码将在主屏幕上创建一个快捷方式。


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.30564403533936 seconds