说,现在,一个文件浏览器使用FileProvider打开一个apk文件,好吧,使用如下所示的意图:
intent.setDataAndType(apkFileUri, "application/vnd.android.package-archive");
我已经在接收到的活动中设置了intent-filter,如下所示:
<action android:name="android.intent.action.VIEW" />
<data
android:mimeType="application/vnd.android.package-archive"
android:scheme="content" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
关键是我如何从uri获取此文件的绝对路径?这个uri不像内容或文件+绝对路径,而是开发人员的一些个人定义的路径。 我通过uri.getPath()从不同的浏览器中检索了路径,并且得到了以下信息:
/file/storage/emulated/0/myMessage-global-xxhdpi-debug-1.6.0.apk
/external/file/65971
我需要apk文件的绝对路径,以便可以使用PackageManager中的方法获取apk文件的PackageInfo,以显示详细信息,例如所需的权限,版本代码和e.t.c。所以我真的需要APK文件的绝对路径。我四处搜寻,如果格式是图像或音频,我知道可以获得路径。但是我需要apk路径。
getPackageArchiveInfo(String archiveFilePath, int flag)