当前位置: 首页 > 编程笔记 >

Android安装apk文件并适配Android 7.0详解

郝哲茂
2023-03-14
本文向大家介绍Android安装apk文件并适配Android 7.0详解,包括了Android安装apk文件并适配Android 7.0详解的使用技巧和注意事项,需要的朋友参考一下

Android安装apk文件并适配Android 7.0详解

首先在AndroidManifest.xml文件,activity同级节点注册provider:

<provider
      android:name="android.support.v4.content.FileProvider"
      android:authorities="${applicationId}.file_provider"
      android:exported="false"
      android:grantUriPermissions="true">
      <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
    </provider>

将apk文件下载到此路径:

String cachePath = (
            getExternalFilesDir("upgrade_apk") +
                File.separator +
                getPackageName() +
                ".apk");

在res目录xml文件夹下创建名为file_paths的文件:upgrade_apk代表上面保存路径的文件夹名称,可随意更改,相同即可。

<?xml version="1.0" encoding="utf-8"?>
<paths>
  <external-files-path name="bga_upgrade_apk" path="upgrade_apk" />
</paths>

最后编写代码,区分不同Android系统版本号,安装apk(注意:【com.apkinstall.demo】要替换自己应用的包名)

 /**
       * 安装 apk 文件
       *
       * @param apkFile
       */
      public void installApk(File apkFile) {
        Intent installApkIntent = new Intent();
        installApkIntent.setAction(Intent.ACTION_VIEW);
        installApkIntent.addCategory(Intent.CATEGORY_DEFAULT);
        installApkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
          installApkIntent.setDataAndType(FileProvider.getUriForFile(getApplicationContext(), "com.apkinstall.demo.file_provider", apkFile), "application/vnd.android.package-archive");
          installApkIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        } else {
          installApkIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
        }

        if (getPackageManager().queryIntentActivities(installApkIntent, 0).size() > 0) {
          startActivity(installApkIntent);
        }
      }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍适配android7.0获取文件的Uri的方法,包括了适配android7.0获取文件的Uri的方法的使用技巧和注意事项,需要的朋友参考一下 前言# Android 7.0已经发布很久了,虽然市场份额还不是很高,但是流行起来都是早晚的事,所以适配Android 7.0刻不容缓。 Android 7.0 对系统进行了很多的优化:例如文件访问权限,省电,网络,后台等等,其中最突出的就是应

  • 我创建了一个基本的Android应用程序作为实习。创建了它的APK并尝试通过USB电缆将其连接到笔记本电脑并用作模拟器在我的手机上运行,它运行良好。我的Android操作系统版本是Oreo,我尝试在Lollypop上做同样的事情,但它仍然在执行。 当我通过电子邮件发送APK并尝试直接安装在设备上时,问题就来了,它给了我这个错误 解析包时出现问题 我不知道发生了什么,因为它是从Android Stu

  • 本文向大家介绍docker安装redis并以配置文件方式启动详解,包括了docker安装redis并以配置文件方式启动详解的使用技巧和注意事项,需要的朋友参考一下 更新 最近发现服务器被挖矿病毒入侵了 很有可能是因为redis没有设置密码的原因! 1.获取redis镜像 指定版本号: 不加版本号默认获取最新版本,也可以使用 docker search redis 查看镜像来源 2.查看本地镜像 

  • 假设我们在Android设备中启用了工作配置文件(Android For Work)。有没有人知道如何通过ADB在工作配置文件而不是个人配置文件中安装APK。 我已经看到了ADB文档,有一种方法可以获得用户ID,但是使用相同的ID,我无法安装APK。 获取ID:Install命令: 有什么办法可以绕过这件事吗?我在这里的用例是替换一个启用了调试选项的应用程序,这样我就可以对安装在工作配置文件中的特

  • Apk安装的主要步骤: 为了学习这个过程,真的是陷入了pms的源码很久,也看了很多前人的博文,才算是有了些思路,所以此处先把主要步骤列出来,后面再慢慢分析细节。 将apk文件复制到data/app目录 解析apk信息 dexopt操作 更新权限信息 完成安装,发送Intent.ACTION_PACKAGE_ADDED广播 下面将具体步骤列张图出来: 由图可见安装过程中流转的步骤还是比较多的,下面具

  • 我正在慢慢尝试在中执行一些简单的任务。以下应用程序安装在模拟器上,没有任何错误。但是当我尝试将其安装在真实设备Redmi 3S上时,出现了此错误: 我在这里遇到过类似的问题,但在这些情况下,错误是由于未启用调试或未访问应用程序安装而导致的。然而,我允许调试,我还尝试在Studio中安装其他一些应用程序,并且运行良好。 所以问题可能是,代码出了什么问题。 主要活动.java xml代码是: acti