如何解决如何使设备管理员应用程序无提示更新自身
我正在尝试开发一个设备管理应用程序,该应用程序可以在没有任何用户交互的情况下进行自我更新。 我正在使用没有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 举报,一经查实,本站将立刻删除。