zoukankan      html  css  js  c++  java
  • Delphi 安装apk

    procedure ToInstallApk(filename: string);
    var
       aFile: Jfile;
       Intent: JIntent;
    begin
          Try
              aFile := TJfile.JavaClass.init(stringtojstring(DownPath),stringtojstring(filename));
              Intent := TJIntent.Create;
              Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
              Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
              Intent.setDataAndType(TJnet_Uri.JavaClass.fromFile(aFile), stringtojstring('applicationnd.android.package-archive'));
              SharedActivityContext.startActivity(Intent);
          Except
          End;
    end;
    
    
    procedure ToInstallApk70(filename: string);
    var
      LFile: JFile;
      LIntent: JIntent;
      LNet_Uri: Jnet_Uri;
    begin
      if not TOSVersion.Check(7, 0) then
      begin
           ToInstallApk(filename);
           exit;
      end;
      LFile := TJFile.JavaClass.init(StringToJString(ExtractFilePath(DownPath)), StringToJstring(ExtractFileName(filename)));
      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('applicationnd.android.package-archive'));
      TAndroidHelper.Context.startActivity(LIntent);
    end;
  • 相关阅读:
    Bower 使用
    为什么是static?
    多重继承 -Javascript中的apply与call详解
    留用 未验证 js适配根字体大小
    Js作用域与作用域链详解
    理解AngularJS中的依赖注入
    渐进增强 优雅降级
    前后台数据交换的几种方式:
    then()方法是异步执行
    HTML怎么让img 等比例缩放
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/11934682.html
Copyright © 2011-2022 走看看