当前位置: 首页 > 知识库问答 >
问题:

Android是否以编程方式安装apk?

陈实
2023-03-14

我在尝试以编程方式安装apk并在安装后重新启动Android emulator时遇到了一些问题。我指的是这条线。

这是我的代码:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri apkURI = FileProvider.getUriForFile(mActivity, mActivity.getApplicationContext().getPackageName() + ".provider", new File(fullPath));
    intent.setDataAndType(apkURI, "application/vnd.android.package-archive");
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    mActivity.startActivity(intent);

有没有办法安装apk而不启动意图?因为我正在AsyncTask的doInBackground()执行上述方法。然后在onPostExecute()中,我需要显示一个片段,说明安装成功。

然而,对于上面的代码,在调用startActivity()时,它只是关闭了我的所有片段。

共有1个答案

东方河
2023-03-14

不幸的是,在没有用户干预的情况下,你无法完全在后台安装应用程序(假设你正试图通过doInBackground()启动Intent来实现这一点)。当您启动该意图时,您只是将该意图传递给系统的包管理器,并要求它安装它。软件包管理员需要请求用户确认。如果没有root或特权,即使使用android,也无法在后台以编程方式真正安装APK。准许安装软件包权限。希望这能回答你的问题!

 类似资料:
  • 我们以编程方式安装了应用程序。 如果应用程序已安装在设备中,则应用程序将自动打开。 指引我。我完全不知道。谢谢。

  • 问题内容: 说我有两个JavaBeans 和。 如果创建一个Person对象的列表,我想编组成这样的东西: 可以使用这里描述的技术: 使用JAXB解组/编组List 通过使用和注释JaxbList,可以将其编组为上述XML。 但是,能够重用相同的类来封送对象列表也很好。实际上,我将有许多其他类型的bean。我可以这样: 但是,理想情况下,最好用类名的复数形式替换“列表”,用类名替换“ item”。

  • 问题内容: 是否可以在Android中以编程方式关闭静音模式? 问题答案: 为您解决。

  • 在Android 9中 我还在清单文件中添加了必需的权限。 当我运行这个程序时,它告诉我解析包错误时出现了问题。

  • 本文向大家介绍Android编程判断手机上是否安装了某个程序的方法,包括了Android编程判断手机上是否安装了某个程序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程判断手机上是否安装了某个程序的方法。分享给大家供大家参考,具体如下: 1. 首先得到该程序的包名 这个连上手机ADB,看logcat就能看到。比如:QQ客户端的包名是com.tencent.mobil

  • 是否可以在Inno安装程序中以编程方式生成文件标志?我的安装程序源代码在一个相当大的目录结构中包含大量文件。目前,我通过一次添加整个文件夹来最小化脚本的复杂性。这很有效,但是,有许多文件分散在整个层次结构中,它们没有从压缩中受益(例如*. jpg),并且显着增加了安装程序构建时间。理想情况下,我想做以下事情: 其中GetFlages将检查当前文件的扩展名,并为我不想压缩的文件类型返回“未压缩”。这