我有一堆 Android 设备,这些设备将使用自定义 ROM 进行刷新并分发给客户。作为该 ROM 的一部分,将是一个与设备绑定的“支持”应用程序。它无法发布到 Google Play。我需要能够为用户提供下载和安装软件更新版本的机会。我已经检查、下载和安装了已经实现的代码,但是它依赖于被配置为能够安装来自未知来源的应用程序的设备。我需要设备能够下载和安装这个特定的 apk,同时仍然不允许安装来自未知来源的任何其他应用程序。
这可能吗?
(编辑:澄清选择的答案最终如何起作用)
添加到活动的代码是这样的:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() +"/update.apk")), "application/vnd.android.package-archive");
intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
intent.putExtra(Intent.EXTRA_ALLOW_REPLACE, true);
startActivityForResult(intent, 0);
在 android 清单中,添加了以下代码:
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
安装应用程序后,我使用根文件资源管理器将 apk 移动/user/apps
到/system/apps
重置手机后,应用程序能够自行安装,而不是提示用户启用不受信任的来源。安装提示,列出应用程序所需的权限并让用户选择安装或不安装仍然出现,但这很好。