美文网首页
Android6.0以上安装安装包

Android6.0以上安装安装包

作者: 小贱嘎嘎 | 来源:发表于2017-05-02 11:55 被阅读0次

Android6.0以下

  public static void installNewPackage(Context context, String path) {
    if (StringUtils.isNull(path)) {
        return;
    }
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setDataAndType(Uri.fromFile(new File(path)), "application/vnd.android.package-archive");
    context.startActivity(intent);
}

Android6.0及以上

先要配置AndroidManifest.xml
1.Application节点添加如下代码

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

2.在资源文件夹res下新建xml目录,新建provider_paths.xml文件,文件内容如下

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
     <external-path name="external_files" path="."/>
</paths>

3.调用代码

private static void openFile(File var0, Context var1) {
    Intent var2 = new Intent();
    var2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    var2.setAction(Intent.ACTION_VIEW);
    Uri uriForFile = FileProvider.getUriForFile(var1, var1.getApplicationContext().getPackageName() + ".provider", var0);
    var2.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    var2.setDataAndType(uriForFile, var1.getContentResolver().getType(uriForFile));
    try {
        var1.startActivity(var2);
    } catch (Exception var5) {
        var5.printStackTrace();
        Toast.makeText(var1, "没有找到打开此类文件的程序", Toast.LENGTH_SHORT).show();
    }
}

相关文章

  • Android6.0以上安装安装包

    Android6.0以下 Android6.0及以上 先要配置AndroidManifest.xml1.Appli...

  • 记录配合服务器实现的项目内更新

    该更新也可用于Android6.0以上需要获取权限时,无法打开安装包的情况首先,你需要一个让后台给你传一个类似

  • 安装jsoncpp

    检测一下自己的的yum安装包里是否有jsoncpp-devel的安装包 如果有就把所有的都安装 如果没有以上安装包...

  • Rtools安装

    在github上安装包出现需要安装Rtools的问题 PATH="{PATH}"以上代码均无法安装Rtools,可...

  • HBase部署入门指南

    1 环境准备 1)安装jdk1.7或以上版本2)安装hadoop-2.2.0 开发环境 2 HBase安装包下载 ...

  • 结合React创建一个简单Electron桌面应用

    准备工作 安装node环境 下载node安装包(8.0以上版本):https://nodejs.org/zh-cn...

  • Docker安装

    当ubuntu版本在14.0.1以上则可以直接安装docker,因为ubuntu系统中自带docker安装包,但是...

  • elasticsearch7.3.0安装

    环境准备 1. 安装 JDK,版本 1.8 以上 2. 下载elasticsearch7.3.0安装包 3. 创建...

  • MAC 下安装 cassandra

    前提:java8 以上 下载安装包 配置,非root用户 启动 验证

  • Android调试SQLite数据库

    前言 Android6.0以上需要root权限才能成为超级管理员。因此Android6.0以上无法使用命令行调试数...

网友评论

      本文标题:Android6.0以上安装安装包

      本文链接:https://www.haomeiwen.com/subject/oqbgnttx.html