美文网首页
Kotlin 7.0以上安装Apk

Kotlin 7.0以上安装Apk

作者: BreakerMan | 来源:发表于2018-07-17 14:59 被阅读0次

    在网上找了很多适配7.0以上android系统打开文件的解决方法,但都是用java写的,在kotlin中又会碰到其它的问题,而显示kotlin问题方面的信息,根本就没有,在这里记录以下我使用kotlin打开文件是碰到的问题。

    在项目中需要更新Apk,在我更新完Apk后,调用java写的工程中的安装方法转换成kotlin代码后,在kotlin项目中,运行安装,一直都是都是屏幕一闪之后,就没反应了,因为刚开始用kotlin,使用不是很熟,查看LogCat模式有错,在这记录遇到的问题及解决方式。

    先配置先java的安装Apk的方式,有两种:

    1,在你需要的地方,你可以使用如下代码,如果你需要在多个地方打开文件,你可以在Application中配置这个:

    //7.0上安装apk报fileUriExposedException

    //解决7.0以上传递file://类型uri抛出FileUriExposedException异常

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

    val builder = StrictMode.VmPolicy.Builder()

    StrictMode.setVmPolicy(builder.build())

    }

    在打开文件可以直接调用最基础的方法,不用适配7.0的问题:

    File file =new File(fullPath);

    Intent updateApk =new Intent(Intent.ACTION_VIEW);

    Uri downloadFileUri = Uri.fromFile(file);

    updateApk.setDataAndType(downloadFileUri, "application/vnd.android.package-archive");

    updateApk.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    MyApplication.getInstance().startActivity(updateApk);

    2.就是不使用上面配置的方法,使用FileProvider:

    首先在项目的res目录下,创建一个xml文件夹,在里面创建一个file_paths.xml文件,里面内容:

    file_paths.png  file_paths的内容

    再在清单文件中配置FileProvider:

    File_Provider.png  provider的配置

    在打开文件的时候,需要适配7.0:

    //判断是否是AndroidN以及更高的版本

    Intent intent =new Intent(Intent.ACTION_VIEW);

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

          intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

          Uri contentUri = FileProvider.getUriForFile(context.getApplicationContext(),        BuildConfig.APPLICATION_ID +".fileProvider", file);

          intent.setDataAndType(contentUri, "application/vnd.android.package-archive");

     }else {

          intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");

          intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

      }

      context.startActivity(intent);

    在使用java编写工程的时候,打开文件没什么问题,但是在kotlin中,第一种方式没用,第二种方式Apk也安装不了,需要在清单文件中配置权限:

    permission.png  权限配置图

    相关文章

      网友评论

          本文标题:Kotlin 7.0以上安装Apk

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