2013-09-24 3 views
2

기기 관리자 api에 대해 궁금한 점이 있거나이 API를 사용하여 애플리케이션을 제한적으로 사용할 수 없거나 비밀번호를 사용할 수 있습니다.android에서 기기 관리자의 사용은 무엇입니까?

정확한 기기 관리자 api가 수행하는 작업을 알려주십시오. 신청서에 어떻게 사용할 수 있습니까? 그리고 내가 설정해야하는 정책을 어떻게 결정할 수 있습니까?

이 혼란을 도와주세요.

답변

3

장치 관리자 API는 시스템 수준에서 장치 관리 기능을 제공하는 API입니다. 이러한 API를 사용하면 보안 인식 응용 프로그램을 만들 수 있습니다. 응용 프로그램을 장치에서 제거하거나 화면 잠금 상태 일 때 카메라를 사용하여 사진을 캡처하는 데 사용됩니다.

기기 관리 API는
과 같은 정책을 지원합니다. 1) 비밀번호 사용 - 기기에서 PIN 또는 비밀번호를 요청해야합니다.

2.) 최소 암호 길이 - 암호에 필요한 문자 수를 설정하십시오. 예를 들어 PIN 또는 암호를 6 자 이상으로 입력하도록 요구할 수 있습니다.

3.) 영숫자 암호 필요 - 암호에는 문자와 숫자가 조합되어 있어야합니다. 기호 문자가 포함될 수 있습니다.

4. 복잡한 암호 필요 - 암호에는 최소한 문자, 숫자 숫자 및 특수 기호가 있어야합니다. Android 3.0에 도입되었습니다.

5. 암호에 필요한 최소 문자 수 - 모든 관리자 또는 특정 암호의 암호에 필요한 최소 문자 수. Android 3.0에 도입되었습니다.

6.) 암호에 필요한 최소 소문자 수 - 모든 관리자 또는 특정 암호의 암호에 필요한 소문자의 최소 수. Android 3.0에 도입되었습니다.

7.) 암호 만료 시간 제한 - 암호가 만료 될 때 장치 관리자가 만료 시간 제한을 설정할 때부터 밀리 초 단위의 델타로 표시됩니다. Android 3.0에 도입되었습니다.

8.) 최대 실패 암호 시도 횟수 - 사용자가 잘못된 암호를 입력하여 장치가 데이터를 지울 수있는 횟수를 지정합니다. Device Administration API를 사용하여 관리자는 장치를 제조시 기본값으로 원격으로 재설정 할 수 있습니다. 이렇게하면 장치를 분실하거나 도난 당했을 때 데이터를 안전하게 보호 할 수 있습니다.

9. 최대 비활성 시간 잠금 - 사용자가 마지막으로 화면을 터치하거나 장치가 화면을 잠그기 전에 버튼을 누른 이후의 시간을 설정합니다. 이 경우 사용자는 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"); 
} 
} 

또한,
RES-> XML-> device_admin_uses_policies에 이름 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> 

그것은 &이 알려 백그라운드 서비스로 작동합니다. 그것은 나를 위해 훌륭한 방식으로 작용합니다. 희망은 그것이 또한 당신을 위해 작동합니다.