问题描述
我正在尝试开发一个设备管理应用程序,该应用程序可以在没有任何用户交互的情况下进行自我更新。 我正在使用没有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 (将#修改为@)