如何在Kiosk模式下运行Android应用程序,禁用安全模式并防止设备硬复位?
如何在Kiosk模式下运行Android应用程序,禁用安全模式并防止设备硬复位? 我的应用程序有以下3个要求:如何在Kiosk模式下运行Android应用程序,禁用安全模式并防止设备硬复位?,android,reset,android-8.0-oreo,kiosk-mode,safe-mode,Android,Reset,Android 8.0 Oreo,Kiosk Mode,Safe Mode,如何在Kiosk模式下运行Android应用程序,禁用安全模式并防止设备硬复位? 我的应用程序有以下3个要求: 在设备的正常模式下,仅向在校学生显示特定的应用程序。这可以通过禁用默认启动器并启用 禁用或将密码设置为安全模式,以避免使用系统应用程序或内置应用程序(youtube、视频播放器、音乐应用程序等) 通过禁用设备硬键(电源按钮、音量按钮)的长按来限制设备的硬复位 我已经解释了这些要求,并得出了以下详细理解。 我们可以重新设计school students应用程序,使其成为一个启动程序,将在
我走的方向对吗?或者我是否正确地描述了它?看一看,如果没有定制的设备固件,似乎无法完成更多的工作。你能设计并部署你的应用程序吗?这为您在设备上提供了最大的可能性,但部署可能会很痛苦,具体取决于环境:不适合公开发布,但如果您能够管理设备组,则部署是可行的 100%信息亭模式不可能。
限制硬重设:硬重设选项是引导加载程序的一部分,因此很难阻止设备进行出厂重设,
我有一个解决方案,但只有当设备根目录时才有效
限制硬重置:将apk文件复制到系统/应用程序,当设备恢复后,Android将自动从系统/应用程序文件夹重新安装所有应用程序
禁用系统应用程序:要禁用系统应用程序或任何应用程序,请运行shell命令
pm disable <package name>
禁用导航栏和状态栏
隐藏
private void hideNavigationBar(){
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("pm disable com.android.systemui\n");
os.flush();
try {
Process process = null;
process = Runtime.getRuntime().exec("su");
DataOutputStream osReboot = new DataOutputStream(process.getOutputStream());
osReboot.writeBytes("reboot\n");
osReboot.flush();
process.waitFor();
}
catch (IOException e) {
e.printStackTrace();
}
catch (InterruptedException e) {
e.printStackTrace();
}
}catch (IOException e) {
e.printStackTrace();
}
}
恢复正常
private void showNavigationBar(){
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("pm enable com.android.systemui\n");
os.flush();
os.writeBytes("reboot\n");
os.flush();
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
注意:运行shell命令后,设备将重新启动
你和根一起玩,所以你和你自己,如果有任何疑问,请在开始编码前命令
需求#2和#3是设备的需求,而不是应用程序。我不想开发设备锁定解决方案,因为它本身就是一种产品,购买现有解决方案更便宜。在我的例子中,一些客户使用kiosk模式,它说他们也支持Oreo。此外,它们还用保护壳包装设备。您好,在hideNavigationBar()方法中,它说“变量进程已经在范围中定义”,因为有两个同名的变量:进程和操作系统
private void showNavigationBar(){
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("pm enable com.android.systemui\n");
os.flush();
os.writeBytes("reboot\n");
os.flush();
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}