我必须实现一些功能,我可以通过填写密码来阻止设备中安装的任何应用程序。 当我点击启动应用程序的图标时,它应该要求输入密码。 可能吗。请给出建议。
答案 0 :(得分:2)
在Android中,这种行为在申请级别是不可能的。
虽然我有一个黑客方法,你可以尝试如下:
步骤:创建一项服务,该服务将持续检查顶层堆栈上正在运行的应用程序:
您可以使用以下代码检查顶部运行的当前应用程序(任何应用程序)包名称:
String packageName= getSystemService(Context.ACTIVITY_SERVICE).getRunningTasks(1).get(0)).topActivity.getPackageName();
现在您需要比较最受欢迎的应用程序的程序包名称,以确定这是否是您要阻止的应用程序。
假设您要阻止Android中的浏览器应用程序,那么当用户点击浏览器图标时,该应用将移动到堆栈顶部并且您正在运行的服务会识别它。
然后你需要在该应用程序上打开自己的Dummy Lock屏幕。这样,用户将无法访问该应用程序,如果用户试图按下虚拟锁定屏幕上的后退按钮,则需要覆盖背面按下并启动主屏幕意图。
这是一种破解创建可以锁定特定应用程序的应用程序: 我从Play商店反向设计了几个应用程序,他们也使用这种技术来执行此操作。
希望这会给你一个想法。
答案 1 :(得分:2)
阻止设备中安装的所有应用程序
您可以通过修改固件来实现此目的。
当我点击启动应用程序的图标时,它应该要求输入密码
如果您拥有INSTALL_SHORTCUT和UNINSTALL_SHORTCUT权限,也可以。然后你就可以做Launcher可以做的事了。以this link为例。
答案 2 :(得分:1)
由于Android是开源的,一切皆有可能,但这意味着你必须重写Android OS的自然行为。
并在您的设备上安装此“黑客”操作系统。 我不知道如何提供这种服务作为应用程序。