2013-09-24 3 views
2

У меня есть сомнения/вопрос об администраторе устройства api, используя этот API, я могу ограничить свое приложение от uninstillation любым способом, может быть, используя пароль.Что такое администратор устройств в Android?

Скажите, пожалуйста, что именно делает администратор устройства api? Как я могу использовать их в своем приложении? И как я могу решить, какие политики мне нужно установить?

Пожалуйста, помогите мне в этом замешательстве.

ответ

3

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.) Максимально неудачные попытки попытки пароля. Указывает, сколько раз пользователь может ввести неверный пароль до того, как устройство уничтожит его данные. API администрирования устройств также позволяет администраторам удаленно перезагружать устройство до заводских настроек по умолчанию. Это защищает данные в случае утери или кражи устройства.

9.) Максимальная блокировка времени бездействия. Устанавливает время, прошедшее с момента последнего касания экрана пользователем, или нажатие кнопки до того, как устройство заблокирует экран. Когда это произойдет, пользователям необходимо снова ввести свой ПИН или пароли, прежде чем они смогут использовать свои устройства и получить доступ к данным. Значение может составлять от 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> 

Atlast, добавьте этот код в файл манифеста.

<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> 

Она будет работать в качестве фонового сервиса & уведомит вас. Он отлично работает для меня. Надеюсь, он будет работать и для вас.

Смежные вопросы