如何防止用户返回Android主屏幕?

时间:2017-01-21 14:27:24

标签: android

我正在从事智能手机租赁服务。

当用户解锁应用时

1)我想启动xxx app,而不是android主屏幕

2)想要阻止用户返回应用的仪表板(当他们按设备主页按钮时)

我能想到的可能解决方案

1)在将应用程序传递给客户之前打开应用程序

2)当按下设备主页按钮时,通过在触发主页按钮事件时将其重定向到应用仪表板,防止应用返回到Android主屏幕。

Detect home button press in android

此代码仅检测事件,但未阻止用户返回主屏幕。

@Override
protected void onUserLeaveHint()
{
    Log.d("onUserLeaveHint","Home button pressed");
    super.onUserLeaveHint();
}

希望它不是我在操作系统级别上需要做的事情。

1 个答案:

答案 0 :(得分:1)

这实际上是我已经工作了一年多的事情。这不是一项容易完成的任务,也不是完美的,在没有直接ROM访问的情况下,几乎总有一种方法可以脱离应用程序。

如果您在客户获得之前可以访问所有硬件,则可以使用“设备所有者/配置”,这样可以更轻松地使用

https://source.android.com/devices/tech/admin/provision.html

然后使用设备所有者,您可以在没有用户提示的情况下使用“屏幕固定”以及禁用特定应用等。

https://developer.android.com/about/versions/android-5.0.html#ScreenPinning

除此之外,推荐的方法是

  1. 启动应用时请求“应用使用权限”(设置>安全性) 这将允许您获取当前“顶级”包,即哪个应用程序正在运行

  2. 启动一项服务,定期检查顶级应用以检查是否!=允许的应用

  3. 如果它不是您允许的应用,请继续关注您的应用

  4. 当然还有其他需要考虑的因素,阻止状态栏(在顶部绘制一个看不见的视图),防止访问系统对话,请求“设备管理员”,以便您可以阻止卸载主应用程序未经许可等。