我正在从事智能手机租赁服务。
当用户解锁应用时
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();
}
希望它不是我在操作系统级别上需要做的事情。
答案 0 :(得分:1)
这实际上是我已经工作了一年多的事情。这不是一项容易完成的任务,也不是完美的,在没有直接ROM访问的情况下,几乎总有一种方法可以脱离应用程序。
如果您在客户获得之前可以访问所有硬件,则可以使用“设备所有者/配置”,这样可以更轻松地使用
https://source.android.com/devices/tech/admin/provision.html
然后使用设备所有者,您可以在没有用户提示的情况下使用“屏幕固定”以及禁用特定应用等。
https://developer.android.com/about/versions/android-5.0.html#ScreenPinning
除此之外,推荐的方法是
启动应用时请求“应用使用权限”(设置>安全性) 这将允许您获取当前“顶级”包,即哪个应用程序正在运行
启动一项服务,定期检查顶级应用以检查是否!=允许的应用
如果它不是您允许的应用,请继续关注您的应用
当然还有其他需要考虑的因素,阻止状态栏(在顶部绘制一个看不见的视图),防止访问系统对话,请求“设备管理员”,以便您可以阻止卸载主应用程序未经许可等。