【发布时间】:2019-02-10 13:41:49
【问题描述】:
我正在开发一个具有自动更新功能的 Android 应用程序,我正在为其开发此应用程序的 android 设备没有 google play,因此我必须在有更新时在某处上传新版本的新 apk 并每次以编程方式检查如果有新版本,则打开应用程序,如果有,我下载它(apk)然后使用此代码安装
Uri apkUri = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".provider", file);
Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
intent.setData(apkUri);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(intent, 123);
因为运行应用程序的设备运行的是android 7,所以它运行没有任何问题。最近,设备升级到Android 8,该功能停止工作,搜索了很多天我发现我必须获得一个名为@的权限987654325@ 安装新软件包 https://developer.android.com/reference/android/Manifest.permission.html#REQUEST_INSTALL_PACKAGES 从 Android API 25 开始,如文档在此链接中所述。 我现在有两个问题;
首先:我没有在旧apk中包含这个权限,所以旧apk的所有用户都必须卸载旧apk并手动安装新apk(新apk是具有REQUEST_INSTALL_PACKAGE perm的那个)
第二:即使他们这样做了,我在上面使用的代码也会将用户带到一个屏幕,并显示一条可怕的消息,向他们描述“谁在安装新的 apk 并且他们应对该行为负责”。我附上了消息的屏幕截图,即使有我需要从谷歌购买的证书,我也需要删除此消息,我搜索过但什么也没找到
任何解决方案,提前致谢
【问题讨论】:
标签: android android-permissions