我正在运行一个 android 应用程序作为系统上唯一运行的应用程序,因此,当启动完成时,我启动该应用程序并阻止用户出于任何原因退出它(这使我禁用了两个导航状态栏)。
然后,为了实现对应用程序的更新,我查看是否有新的,如果有,我运行后台任务以使用jsch从 sftp 服务器下载新的更新,当应用程序完成下载后,我安装apk 使用ACTION_VIEW
意图:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/update_app.apk")), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
这里的问题是安装完成后,会出现默认的android屏幕:
这让用户可以选择完成|| Open,并且确定如果用户选择Done会导致关闭窗口,并且应用程序现在已经关闭,因为它已更新,因此它会将用户带到根本不受欢迎的系统 UI。
请记住,我无法以编程方式打开应用程序,因为在安装更新时它会卸载旧版本,所以我必须执行我不知道如何实现的两个选项之一:
安装完成后强制应用默认打开。
更改系统安装完成屏幕或覆盖它的按钮操作。