美文网首页
Android O以后安装第三方app的方式

Android O以后安装第三方app的方式

作者: 绘情少年 | 来源:发表于2019-08-12 00:03 被阅读0次

    首先,在AndroidManifest.xml写权限

        <!-- 安装应用权限 -->
        <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
    

    然后在application包围里面写

            <!-- 访问文件权限 -->
            <provider android:name="androidx.core.content.FileProvider"
                android:authorities="包名.fileProvider"
                android:grantUriPermissions="true"
                android:exported="false">
                <meta-data
                    android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/file_paths" />
            </provider>
    

    然后在res目录新建xml目录,在xml目录新建file_paths.xml文件,文件中写入

    <?xml version="1.0" encoding="utf-8"?>
    <paths>
        <external-path path="Android/data/包名/" name="files_root" />
        <external-path path="." name="external_storage_root" />
    </paths>
    

    以上就是获取访问Uri权限的内容
    下面开始在Java中使用代码来动态申请安装app权限以及安装指定安装包

    //判断有没有权限
    boolean hasins = getPackageManager().canRequestPackageInstalls();
    //如果没有就写跳转申请界面,这个是8.0新API
    Uri packageURI = Uri.parse("package:" + getPackageName());
    Intent intent10086 = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
    startActivityForResult(intent10086, 10086);
    //如果有权限,就直接安装
    Intent intent = new Intent(Intent.ACTION_VIEW);
    //判断是否是AndroidN以及更高的版本
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
      intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
      Uri contentUri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileProvider", new File("安装包路径"));
      intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
    } else {
      intent.setDataAndType(Uri.fromFile(new File("安装包路径")), "application/vnd.android.package-archive");
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    }
    startActivity(intent);
    

    相关文章

      网友评论

          本文标题:Android O以后安装第三方app的方式

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