gpt4 book ai didi

android - 如何在 Kiosk 模式下运行 Android 应用程序,禁用安全模式并防止设备硬重置?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:03:57 25 4
gpt4 key购买 nike

如何在 Kiosk 模式下运行 Android 应用程序,禁用安全模式并防止设备硬重置?

我的应用有以下 3 个要求:

  1. 在设备的正常模式下仅向学校学生显示特定应用。这可以通过禁用默认启动器并启用 kiosk launcher 来实现。 .

  2. 禁用或将密码设置为安全模式以避免使用系统应用程序或内置应用程序(youtube、视频播放器、音乐应用程序等)。

  3. 通过禁止长按设备的硬键(电源按钮、音量按钮)来限制设备的硬重置。

我已经解读了这些要求并得出了以下详细理解。

  1. 我们可以重新设计学生应用程序,使其成为一个将在信息亭模式下运行的启动器应用程序。这意味着我们将不需要任何其他(试用版)启动器应用。

  2. 我们可以通过 AppLock 禁用对系统或第三方应用程序的安全模式访问。应用程序或类似的其他应用程序。它仅适用于 Android Marshmallow 6.0。但是有一个 Android 强加的限制——它不能在 Nougat/Oreo 设备上运行。或者,我们尝试处理电源按钮按键以防止设备进入安全模式。但是 Android 不允许根据 this link 从我们的应用程序访问或监听电源按键。以及其他各种。

Android 7.0 (NOUGAT) 和 8.0 (OREO) 的重要说明 - link here

根据 MMGuardian App , 目前安卓7.0或8.0手机无法开启安全模式锁。如果以前启用了安全模式锁定的旧手机更新到这些版本的 Android,安全模式锁定功能将被禁用。

  1. 我们无法阻止任何设备进行硬重置,因为这主要是在手机关机后完成的,让应用程序无法控制。但是有一个昂贵的选择。我们可以使用 COSU 设备并设计自定义固件。有关 COSU 的更多详细信息,请访问以下链接。 https://developer.android.com/work/cosu.html https://developers.google.com/android/work/requirements/cosu

有人可以帮我添加更多想法,以便我更详细地了解这种情况吗?

我的方向是否正确?或者我是否详细说明了它?

最佳答案

100% 的 Kiosk 模式是不可能的。

限制硬重置:硬重置选项是引导加载程序的一部分,因此很难阻止设备恢复出厂设置,

我有解决方案,但只有在设备已 root 时才有效

限制硬重置:将您的 apk 文件复制到 system/app,当设备恢复后,Android 将自动重新安装 system/app 中的所有应用>文件夹

禁用系统应用程序以禁用系统应用程序或任何运行 shell 命令的应用程序

pm disable <package name>


解释音量键:要运行这个你不需要root权限,在你的 Activity 类中使用这个代码

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// TODO Auto-generated method stub
if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN))
{
// Do what ever you want
}
if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP))
{
// Do what ever you want
}
return true;
}

奖金禁用导航​​栏和状态栏
隐藏

 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命令后设备会重启

Your playing with root, so you and your own, If any doubt please command before start coding

关于android - 如何在 Kiosk 模式下运行 Android 应用程序,禁用安全模式并防止设备硬重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48303406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com