[英]Update a device owner managed android app silently (in kiosk mode)
I have created a device owner app. 我创建了一个设备所有者应用程序。 It can turn an app installed already into Kiosk Mode, I am trying to update the kiosk app remotely, not from playstore, but it's not getting updated.
它可以使已安装的应用程序进入Kiosk模式,我正在尝试远程更新Kiosk应用程序,而不是从playstore进行更新,但是它没有得到更新。 Could anyone please help me with some pointers?
有人可以帮我一些指点吗?
You have to host your apk on your server and then download it based on any conditions that you specify. 您必须将apk托管在服务器上,然后根据您指定的任何条件将其下载。 You can then use this code to update your app.
然后,您可以使用此代码来更新您的应用。
public static boolean InstallAPK(Context context, String apk_file_name) {
try {
File apkfile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + apk_file_name);
if (apkfile.exists()) {
FileInputStream in = new FileInputStream(apkfile);
PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
PackageInstaller.SessionParams.MODE_FULL_INSTALL);
params.setAppPackageName(context.getPackageName());
// set params
int sessionId = packageInstaller.createSession(params);
PackageInstaller.Session session = packageInstaller.openSession(sessionId);
OutputStream out = session.openWrite("COSU", 0, -1);
byte[] buffer = new byte[65536];
int c;
while ((c = in.read(buffer)) != -1) {
out.write(buffer, 0, c);
}
session.fsync(out);
in.close();
out.close();
session.commit(createIntentSender(context, sessionId));
return true;
} else
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
private static IntentSender createIntentSender(Context context, int sessionId) {
PendingIntent pendingIntent = PendingIntent.getBroadcast(
context,
sessionId,
new Intent(ACTION_INSTALL_COMPLETE),
0);
return pendingIntent.getIntentSender();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.