Delphi 安卓App自动升级

这篇具有很好参考价值的文章主要介绍了Delphi 安卓App自动升级。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Androidapi.JNI.Support引用这个单元

procedure _InstallApk(Apk: string);
var
  LFile: JFile;
  LIntent: JIntent;
begin
  LFile := TJFile.JavaClass.init(StringToJString(ExtractFilePath(Apk)), StringToJstring(ExtractFileName(Apk)));
  LIntent := TJIntent.Create;
  LIntent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  LIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  LIntent.setDataAndType(TJnet_Uri.JavaClass.fromFile(LFile), StringToJString('application/vnd.android.package-archive'));
  TAndroidHelper.Context.startActivity(LIntent);
end;
procedure InstallApk(Apk: string);
var
  LFile: JFile;
  LIntent: JIntent;
  LNet_Uri: Jnet_Uri;
begin
  if not TOSVersion.Check(7, 0) then
  begin
    _InstallApk(Apk);
    Exit;
  end;
  LFile := TJFile.JavaClass.init(StringToJString(ExtractFilePath(Apk)), StringToJstring(ExtractFileName(Apk)));
  LIntent := TJIntent.Create;
  if TOSVersion.Check(8, 0) then
    LIntent.setAction(TJIntent.JavaClass.ACTION_INSTALL_PACKAGE)
  else
    LIntent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  LIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  if TOSVersion.Check(7, 0) then
  begin
    // fix: android.os.FileUriExposedException: exposed beyond app through Intent.getData()
    // Project -> Options -> Application -> Entitlement List -> Secure File Sharing -> Check it
    LIntent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
    LNet_Uri := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context,
      StringToJString(JStringToString(TAndroidHelper.Context.getPackageName) + '.fileprovider'), LFile);
  end
  else
    LNet_Uri := TJnet_Uri.JavaClass.fromFile(LFile);
  LIntent.setDataAndType(LNet_Uri, StringToJString('application/vnd.android.package-archive'));
  TAndroidHelper.Context.startActivity(LIntent);
end;

Delphi 安卓App自动升级,android,delphi,自动升级,安卓

Android 8.0以上要在manifest里加权限

在AndroidManifest.template.xml文件中加入
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>即可。

用TPath处理路径(跨平台的路径相关应该都使用System.IOUtils里提供的东西来写)

例如
APK := TPath.Combine(TPath.GetTempPath, 'new.apk');

download('server://foo/bar/new.apk', APK); // save as APK

InstallAPK(APK);

在安卓平台路径是*nix规则的,自己应用内不需要前缀文章来源地址https://www.toymoban.com/news/detail-661550.html

到了这里,关于Delphi 安卓App自动升级的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于 Delphi 11.3跨平台开发Android调用 JNI JAR java 的说明和注意事项

    关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2017.10.18 (* ************************************************ *) (* *) (* *) (* 设计:爱吃猪头肉 Flying Wang 2015-04-15  *) (* 上面的版权声明请不要移除。 *) (* *) (* ************************************************ *) 本人所

    2024年02月07日
    浏览(59)
  • Android APP开机启动,安卓APP开发自启动,安卓启动后APP自动启动 Android让程序开机自动运行APP

    第一步设置获取广播后的业务 第二查权限给APP 理论以上两步做完就可以了。APP也能收到广播信息了, 但是APP没有在桌面启动。 经过再研究,发现要在手机再设置自动开启等业务,以下是小米、魅族的系统设置的一些内容,其它平台自己研究。 这里已经显示收到广播信息  

    2024年02月06日
    浏览(52)
  • Delphi 11必备指南:使用Git集成Python4Delphi的完整步骤

    在Delphi中使用Python有很多好处,可以扩展Delphi的功能并利用Python强大的科学计算和数据分析库。但是,为了将Python集成到Delphi中,我们需要安装Python for Delphi (P4D)组件套件。在这篇博客中,我将介绍如何使用Git安装P4D组件套件。 步骤1:下载并安装Git程序 Git是一个流行的版本

    2024年02月04日
    浏览(36)
  • Delphi 12必备指南:使用Git集成Python4Delphi的完整步骤

    在Delphi中使用Python有很多好处,可以扩展Delphi的功能并利用Python强大的科学计算和数据分析库。但是,为了将Python集成到Delphi中,我们需要安装Python for Delphi (P4D)组件套件。在这篇博客中,我将介绍如何使用Git安装P4D组件套件。 步骤1:下载并安装Git程序 Git是一个流行的版本

    2024年02月22日
    浏览(39)
  • Delphi Enterprise Crack

    Delphi帮助您使用Object Pascal为Windows、Mac、Mobile、IoT和Linux构建和更新数据丰富、超连接、可视化的应用程序。Delphi Enterprise适合开发团队构建客户端/服务器或多层应用程序、REST服务等。 Delphi功能 单一代码库-用更少的编码工作为所有主要平台创建应用程序。写一次,到处编译

    2024年02月14日
    浏览(43)
  • delphi redisclient测试

    注: 或IRedisClient接口中无ExecuteAndGetMatrix方法需要自行添加。

    2024年02月02日
    浏览(34)
  • Delphi语言的VCL框架

    Delphi 是一种面向对象的编程语言,它具有丰富的开发工具和库,其中包括可视化组件库(Visual Component Library,简称 VCL)。VCL 是 Delphi 的一个重要组成部分,它提供了一套丰富的可视化组件,可以快速构建 Windows 应用程序。 VCL 是 Delphi 中最常用的可视化组件库之一,它提供了

    2024年02月02日
    浏览(38)
  • MSBuild 命令行编译Delphi

    为了构建项目,IDE现在使用MSBuild而不是以前的内部生成系统。IDE中的build、compile和make命令调用Microsoft的新生成引擎:MSBuild,它提供了全面的依赖性检查。MSBuild项目文件基于XML,包含描述项目的特定项、属性、任务和目标的部分。 有关MSBuild的详细信息,请参阅Microsoft文档。

    2024年01月15日
    浏览(34)
  • Delphi DataSnap 流程分析(一)

    DataSnap 有三种方式: 1、DataSnap REST Application: Create a DataSnap Server with support for REST Communication and with pages that invoke server methods using Java Script and JSON. 2、DataSnap Server: The DataSnap Server Wizard provides an easy way to implenent a server application using DataSnap technology. 3、DataSnap Webbroker Application: The 

    2023年04月24日
    浏览(33)
  • delphi JSON序列化(四)

    涉及的重要类 REST.Json,REST.JsonReflect,REST.Json.Interceptors, REST.Json.Types单元中。 一、TJson类 最简单的一个类,提供了JSON - OBJECT和OBJECT - JSON几个方法,方法有TJsonOptions参数,如:     class function ObjectToJsonObject(AObject: TObject; AOptions: TJsonOptions = CDefaultOptions): TJSONObject; TJsonOptions主要

    2024年02月03日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包