gpt4 book ai didi

Android:下载自动更新后如何打开apk文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:29:47 25 4
gpt4 key购买 nike

我有一个应用程序,我想添加自动更新功能(它不在市场上)。我已经准备好所有代码来检查是否有可用的更新,然后我调用如下代码:

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse(Configuration.APK_URL));
c.startActivity(intent);

开始下载文件。有没有一种方法可以让我以编程方式告诉它“打开”文件以开始安装过程,而无需用户去下载并单击它?

最佳答案

上面的答案是针对 API-24 之前的。

如果您的应用程序以 API 24 或更高版本为目标(它应该),您需要使用其他东西(否则您会得到 FileUriExposedException,如 here 所述):

    File apkFile = new File(...);
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri fileUri = android.support.v4.content.FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".provider", apkFile);
intent.setDataAndType(fileUri, "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);

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="."/>-->
<external-path path="Android/data/YOUR_PACKAGE_NAME" name="files_root" />
<external-path path="." name="external_storage_root" />
</paths>

其中 YOUR_PACKAGE_NAME 是您的应用程序包名称。

list :

    <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>

关于Android:下载自动更新后如何打开apk文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com