在尝试以编程方式安装apk并在安装后重启Android模拟器时,我遇到了一些问题。我指的是this thread。
下面是我的代码:
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()
时,它只是关闭了我的所有片段。
发布于 2018-06-08 08:47:41
不幸的是,在没有用户干预的情况下,你不能完全在后台安装一个应用程序(假设这就是你通过doInBackground()
启动Intent的目的)。当您启动该意图时,您只是将该意图传递给系统的包管理器,并要求它安装它。包管理器将需要要求用户进行确认。如果没有根用户权限或特殊权限,即使拥有android.permission.INSTALL_PACKAGES
权限,也无法在后台以编程方式真正安装应用程序密钥。希望这能回答你的问题!
https://stackoverflow.com/questions/50751844
复制相似问题