如何使设备管理员应用程序无提示更新自身

问题描述

我正在尝试开发一个设备管理应用程序,该应用程序可以在没有任何用户交互的情况下进行自我更新。 我正在使用没有Google Play服务的PICO G2 4K。我发现2018年有一个类似的问题,但有相同的问题,但仍然没有答案。 (Here)

当我想安装另一个应用apk时,我的APK安装程序正在运行,但是当涉及到自我更新时,程序包管理器出现错误installd: Failed to delete /data/app/vmdl918144964.tmp: No such file or directory

我认为我拥有所有需要的权限:

    <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
    <uses-permission android:name="android.permission.DELETE_PACKAGES" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>

其他一切都很好,我可以安装apk,我的管理接收器运行良好,我可以下载到外部存储设备等。 我的APK安装程序真的很基础并且可以正常运行:

        PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
        PackageInfo packageInfo = context.getPackageManager().getPackageArchiveInfo(path,0);
        int sessionId = packageInstaller.createSession(new PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL));

        long sizeBytes = 0;

        OutputStream out = null;
        out = session.openWrite("my_app_session",sizeBytes);
        int total = 0;
        byte[] buffer = new byte[65536];
        int c;
        while ((c = inputStream.read(buffer)) != -1) {
            total += c;
            out.write(buffer,c);
        }
        session.fsync(out);
        inputStream.close();
        out.close();

        session.commit(createInstallIntentSender(context,sessionId));
        session.close();

感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)