gpt4 book ai didi

android - android中的设备管理员有什么用?

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:39 24 4
gpt4 key购买 nike

我对设备管理员 api 有疑问/疑问,使用这个 API 我可以通过任何方式限制我的应用程序不被注入(inject),可能是通过使用密码。

请告诉我设备管理员 api 到底是做什么的?我如何在我的应用程序中使用它们?我如何决定我需要设置哪些政策?

请帮助我解决这个困惑。

最佳答案

设备管理员 API 是一种在系统级别提供设备管理功能的 API。这些 API 允许您创建具有安全意识的应用程序。用于使您的应用程序从设备上卸载或在屏幕锁定时使用相机拍摄照片。

设备管理 API 支持这样的策略,
1.) 启用密码 - 要求设备要求输入 PIN 或密码。

2.) 最小密码长度 - 设置密码所需的字符数。例如,您可以要求 PIN 或密码至少包含六个字符。

3.) 需要字母数字密码 - 要求密码包含字母和数字的组合。它们可能包括符号字符。

4.) 需要复杂的密码 - 要求密码必须至少包含一个字母、一个数字和一个特殊符号。在 Android 3.0 中引入。

5.) 密码中所需的最少字母数 - 所有管理员或特定管理员的密码中所需的最少字母数。在 Android 3.0 中引入。

6.) 密码中要求的最少小写字母 - 所有管理员或特定管理员的密码中要求的最少小写字母数。在 Android 3.0 中引入。

7.) 密码过期超时 - 密码何时过期,表示为设备管理员设置过期超时时间的增量(以毫秒为单位)。在 Android 3.0 中引入。

8.) Maximum failed password attempts - 指定在设备删除数据之前用户可以输入错误密码的次数。设备管理 API 还允许管理员远程将设备重置为出厂默认设置。这样可以在设备丢失或被盗时保护数据。

9.) Maximum inactivity time lock - 设置从用户最后一次触摸屏幕或按下按钮到设备锁定屏幕之前的时间长度。发生这种情况时,用户需要再次输入 PIN 或密码才能使用其设备和访问数据。该值可以介于 1 到 60 分钟之间。

10.) 禁用相机 - 指定应禁用相机。请注意,这不一定是永久禁用。可以根据上下文、时间等动态启用/禁用摄像头。在 Android 4.0 中引入。

要在您的应用程序中使用此设备管理器,您应该使用以下代码。您只需要将此类添加到您的项目中。

public class MyDeviceAdminReceiver extends DeviceAdminReceiver {

private static final int CAMERA_REQUEST = 1888;
private SurfaceView sv;
private boolean safeToTakePicture = false;
private int count = 0;

/**
* method to show toast
*
* @param context the application context on which the toast has to be displayed
* @param msg The message which will be displayed in the toast
*/
private void showToast(Context context, CharSequence msg) {
Log.e("MyDeviceAdminRec...", "::>>>>1 ");
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}

@Override
public void onEnabled(Context context, Intent intent) {
Log.e("MyDeviceAdminRec...", "::>>>>2 ");
showToast(context, "Sample Device Admin: enabled");
}

@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
Log.e("MyDeviceAdminRec...", "::>>>>3 ");
return "This is an optional message to warn the user about disabling.";
}

@Override
public void onDisabled(Context context, Intent intent) {
Log.e("MyDeviceAdminRec...", "::>>>>4 ");
showToast(context, "Sample Device Admin: disabled");
}

@Override
public void onPasswordChanged(Context context, Intent intent) {
Log.e("MyDeviceAdminRec...", "::>>>>5 ");
showToast(context, "Sample Device Admin: pw changed");
}

@Override
public void onPasswordFailed(Context context, Intent intent) {
Log.e("MyDeviceAdminRec...", "::>>>>6 ");
showToast(context, "Sample Device Admin: pw failed");
}

@Override
public void onPasswordSucceeded(Context context, Intent intent) {
Log.e("MyDeviceAdminRec...", "::>>>>7 ");
showToast(context, "Sample Device Admin: pw succeeded");
}
}

此外,创建一个名为 device_admin_uses_policies 的文件到
res->xml->device_admin_uses_policies 并将以下内容添加到其中。

<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>

最后,将此代码添加到 list 文件中。

<receiver
android:name=".MyDeviceAdminReceiver"
android:description="@string/app_name"
android:label="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin_uses_policies"/>

<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
<action android:name="android.app.action.ACTION_PASSWORD_CHANGED" />
<action android:name="android.app.action.ACTION_PASSWORD_FAILED" />
<action android:name="android.app.action.ACTION_PASSWORD_SUCCEEDED" />
</intent-filter>
</receiver>

它将作为后台服务工作并通知您。它对我很有用。我希望它也对你有用。

关于android - android中的设备管理员有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18975683/

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