android调用三方软件打开文件

android调用三方软件打开文件

    • 问题
    • 过程
    • 解决

问题

在开发过程中,由于需要调用第三方软件打开文件,如调用wps App打开word,excel文件等,但是在android7.0之上一直无法正常跳转

过程

  1. 一开始以为是android7.0文件共享的安全机制的问题,检查之后发现这部分没有问题,而且拍照功能也是正常的(需求有调用相机进行拍照的功能),说明不是这个问题
  2. 经过google一番之后发现是权限问题,应用需要授予URI读取权限

解决

1.首先在AndroidManifest.xml文件中,对FileProvider

<provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="${applicationId}"
            android:exported="false"
            android:grantUriPermissions="true">

            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/filepaths" />

        provider>

新增
android:grantUriPermissions=“true”

2.其次需要再调用时新增权限Flag


val uri = FilePathProvider.getUriForFile(context, file)

Intent(Intent.ACTION_VIEW).run {

	addCategory(Intent.CATEGORY_DEFAULT)
    addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
    setDataAndType(uri, getActionType(fileName))
    context.startActivity(this)
    
}

新增:
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)

你可能感兴趣的:(Android)