Android-在禁用设备管理员之前请求密码
我想制作一个applock应用程序,用户可以在其中对应用程序进行密码保护。我将使用设备管理员,但是如果恶意用户在解锁时访问手机,他可以从设置中禁用手机并轻松卸载 一个名为“applock”的流行应用程序有一个高级保护应用程序,允许他们在禁用设备管理员之前请求密码Android-在禁用设备管理员之前请求密码,android,Android,我想制作一个applock应用程序,用户可以在其中对应用程序进行密码保护。我将使用设备管理员,但是如果恶意用户在解锁时访问手机,他可以从设置中禁用手机并轻松卸载 一个名为“applock”的流行应用程序有一个高级保护应用程序,允许他们在禁用设备管理员之前请求密码 如何提供此功能?我想使用现有的密码。在DeviceAdminReceiver类中,重写此方法: public CharSequence onDisableRequested(Context context, Intent intent)
如何提供此功能?我想使用现有的密码。在DeviceAdminReceiver类中,重写此方法:
public CharSequence onDisableRequested(Context context, Intent intent);
在这里,您应该能够立即锁定设备(因为您仍然具有管理员权限)。一旦用户解锁设备,他们将能够点击ok按钮停用您的应用程序。这看起来像这样:
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
DevicePolicyManager dpm = (DevicePolicyManager)
context.getApplicationContext().getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.lockNow();
Log.d(TAG, "Disable requested");
return "Are you sure??"; //This gets displayed in an alert dialog, but will only be visible after the user unlocks the screen
}
我意识到这并不是你想要的,但最终的结果是相似的。我在别处看到的另一种解决方案是使用侦听器实现服务,以侦听正在运行的应用程序/活动(就像AppBlock一样)。如果它看到禁用设备管理员的活动正在运行,则会弹出一个新活动以请求密码
我想这可能行得通,但我还没有自己编写代码。此外,我不确定您将如何让该活动请求设备密码,而不是应用程序的某些内部密码
希望有帮助 在DeviceAdminReceiver类中,重写此方法:
public CharSequence onDisableRequested(Context context, Intent intent);
在这里,您应该能够立即锁定设备(因为您仍然具有管理员权限)。一旦用户解锁设备,他们将能够点击ok按钮停用您的应用程序。这看起来像这样:
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
DevicePolicyManager dpm = (DevicePolicyManager)
context.getApplicationContext().getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.lockNow();
Log.d(TAG, "Disable requested");
return "Are you sure??"; //This gets displayed in an alert dialog, but will only be visible after the user unlocks the screen
}
我意识到这并不是你想要的,但最终的结果是相似的。我在别处看到的另一种解决方案是使用侦听器实现服务,以侦听正在运行的应用程序/活动(就像AppBlock一样)。如果它看到禁用设备管理员的活动正在运行,则会弹出一个新活动以请求密码
我想这可能行得通,但我还没有自己编写代码。此外,我不确定您将如何让该活动请求设备密码,而不是应用程序的某些内部密码
希望有帮助