Android 4.4 安装APK startActivityForResult 直接调用 onActivityResult

发布于 2022-09-07 20:27:49 字数 986 浏览 17 评论 0

其中,请求码>0,标准模式,7.0(真机)、8.0(虚拟机)都可以。

private void installApp() {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        File file = new File(appTask.path);
        textAppProgressStatus.setText("正在安装···");
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            Uri contentUri = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".fileProvider", file);
            intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
        } else {
            // FIXME: 2018/8/2 Android 4.4 API 19 startActivityForResult 直接调用 onActivityResult
            intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        }
        Log.d(TAG, "installApp: 跳转到安装界面");
        startActivityForResult(intent, REQUEST_CODE_INSTALL);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

(り薆情海 2022-09-14 20:27:49

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
改为 intent.setFlags(0); 即可

参考:https://stackoverflow.com/que...

又是自己结贴QAQ

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文