【问题标题】:Installing android apk programmatically has install button disabled以编程方式安装 android apk 已禁用安装按钮
【发布时间】:2017-10-27 20:20:01
【问题描述】:

在我的公司,我们有 2 个应用程序,它们都是通过 apk 安装的。第一个应用程序是“安装程序”,负责安装“应用程序”apk。

我们使用这行代码调用要安装的“app”apk:

Uri apkUri = Uri.fromFile(toInstall);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
startActivityForResult(intent, RC_INSTALL);

现在,这适用于我们使用的所有设备,除了带有 android 7.1.1 的三星 SM-P355M(选项卡 A)。

当我们在三星 Tab A 上执行上述代码时,安装按钮被禁用。

Install button disabled

但是如果用户按下最近的应用程序按钮,然后返回到我们的“安装程序”应用程序,安装提示就会返回并启用安装按钮!

Install button re-enabled

我不知道为什么会发生这种情况以及为什么它只发生在这个特定的设备上,而且我们的许多用户在安装我们的应用程序时遇到问题,因为他们不知道这种解决方法。

不过,有趣的是,如果我通过三星文件管理器手动浏览并找到 apk 并点击它进行安装,则该按钮已启用!如果我尝试使用 APK Installer PRO 安装,也会发生同样的事情。 但是如果我尝试使用 ES 文件资源管理器,安装按钮将被禁用。

我认为我的代码可能有问题,但我不知道那是什么,因为有些应用程序可以安装我们的 apk,但有些应用程序如果没有该手动解决方法则无法安装。

我已尝试查找任何可能具有“绘制应用程序”权限的已安装应用程序、屏幕录像机、通量或类似内容,但没有发现任何可能导致此问题的内容。

如果有人知道为什么按钮最初被禁用,但在进入最近的应用程序后重新启用,我将不胜感激。

【问题讨论】:

  • 感谢您的提醒,使用最近按钮帮助我启用了安装按钮。我有一堆应用程序要以这种方式安装。其中一些默认启用了安装按钮,而其余的则必须最小化并打开。顺便说一句,这发生在我运行 7.0 的 android studio 模拟器上 :)

标签: android installation apk


【解决方案1】:

经过一周的尝试,我设法解决了这个问题,但忘记在此处发布。

为了将来的参考和帮助可能像我一样不幸的人处理这个错误,我将把我所做的留在这里。

我发现任何针对低于 23 的 api 级别的应用都会出现此问题。这是因为,我认为,在 api 23 之前,用户必须在安装过程中接受所有应用程序权限,而在 api 23 之后,应用程序只能在需要时请求权限。 我检查了我们的应用程序并确认它们针对的是非常旧的 api 级别,所以我所要做的就是至少针对 api 级别 23 并使用新的“请求应用程序权限”来向用户请求权限。完成之后,安装按钮就可以正常工作了。

我希望这可以帮助解决这个奇怪问题的任何人。

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2011-06-25
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多