从下载管理器,我能够下载更新的APK。成功下载安装后,弹出窗口要求安装或取消。有没有办法安装APK而不要求安装。因为如果我点击弹出窗口的外侧,弹出窗口就会关闭。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(path)),
"application/vnd.android.package-archive");
intent.setAction(Intent.ACTION_INSTALL_PACKAGE);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 发布于 2015-04-23 21:56:25
在下面的方法中,在data/local上寻找一个预定义的标记,并尝试安装/system/preinstall目录中的apk文件(可以更改)。
在您的使用中删除apks_installed触摸。在下一次启动时,android将在preinstall目录中安装apks
添加在启动(init.d)脚本时运行的服务
service blabla /system/bin/blabla.sh
user root
group root
disabled
oneshot编写blabla.sh文件并将其放入/system/bin/目录中
#!/system/bin/sh
MARK=/data/local/apks_installed
PKGS=/system/preinstall/
if [ ! -e $MARK ]; then
busybox find $PKGS -name "*\.apk" -exec sh /system/bin/pm install {} \;
touch $MARK
fi注意:您可能意识到您还需要安装busybox
我可能犯了一些错误,但我想你明白我的意思。
发布于 2015-04-23 21:40:00
通常,您需要设备是根设备或具有系统固件签名。
您可以在您的应用程序中创建ApplicationManager和OnInstalledPackaged的副本。
使用它,您可以运行类似于以下代码的程序:
public static void installApp(Context context, File path, OnInstalledPackaged callback) {
try {
final ApplicationManager am = new ApplicationManager(context);
if(callback != null) am.setOnInstalledPackaged(callback);
am.installPackage(path);
} catch (Exception e) {
if(Utils.LOGGING) Utils.log("E::"+e.toString());
}
}发布于 2016-05-03 19:38:57
是的,您可以静默安装apk,方法是让您的应用程序系统应用程序,然后运行命令pm install,如下所示:
**private boolean installApk(String apkPath)
{
Command installEvent = new Command(getCommandList("pm install "
+ apkPath));
return installEvent.executeCommandList();
}**这对我很管用。
https://stackoverflow.com/questions/29825028
复制相似问题