android 장치 관리자(사용자 가 활성화 되 어야 사용 할 수 있 음 을 알려 줍 니 다)--DevicePolicyManager:
14611 단어 Android
DevicePolicyManager
:세 종류 까지 사용:
DevicePolicy Manager 암호 가 정의 하 는 길이,암호 에 대문자,소문 자 등 비밀 번 호 를 설정 할 때 만족 해 야 할 규범,장 치 를 잠 그 거나 모든 사용자 데 이 터 를 제거 할 지 여부,
DeviceAdminReceiver
방법:1.잠 금 화면 조작
mDevicePolicyManager.lockNow()
진행2.
스크린 조명 이 어 두 워 지 는 시간 설정 관련 long timeout = 1000L * Long.parseLong(et.getText().toString());
mDevicePolicyManager.setMaximumTimeToLock(mDeviceComponentName, timeout);
mDevicePolicyManager.wipeData(0);
3.
출고 재 개 설치 mDevicePolicyManager.wipeData(0);
DeviceAdmin Receiver 와 같은 종 류 는 BroadcastReceiver 에서 계승 합 니 다.소스 코드 를 통 해 알 수 있 듯 이 사실은 OnReceive 방법 을 실현 한 것 이다.이 방법 은 서로 다른 Action 에 따라 해당 하 는 조작 을 집행 한다.예 를 들 어 활성화 에 성공 하면 Action 은 ACTION 입 니 다.DEVICE_ADMIN_ENABLED,이에 따라 onEnabled 방법 을 호출 합 니 다.
DeviceAdmin Info 는 장치 정보,Info,즉 Information 를 포함 하고 있 습 니 다.허,함부로 추측 해도 알 수 있 습 니 다.그 안에 어떤 속성 이 있 는 지 는 그때 친구 들 이 직접"...................................................
실현 절차:
1.androidmanifest.xml 에 라디오 클래스 를 등록 하여 감청 권한 의 변화
<receiver
android:name=".AdminReceiver"
android:description="@string/description"
android:label="@string/labelValue"
android:permission="android.permission.BIND_DEVICE_ADMIN"
>
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/lockourscreen"/>
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
intent-filter>
receiver>
관리 권한 을 만 드 는 목록:->res
의 폴 더 아래 xml
폴 더 를 만 들 고 lockourscreen.xml
<device-admin
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<force-lock />
<wipe-data />
<reset-password />
<limit-password />
<watch-login />
uses-policies>
device-admin>
의 중간 내용 을 만 들 지 않 아 도 됩 니 다.이 부분 은 시스템 이 주 는 제시 어 이기 때문에 우 리 는 스스로 프로그램 을 만 들 때 자신 이 쓰 고 싶 은 내용 을 입력 할 수 있다. 3.방송 류 deviceAdminReceiver 를 만 들 고 DeviceAdminReceiver 를 계승 하 며 해당 하 는 방법 을 실현 합 니 다.
package com.xiaoma.www;
import android.app.admin.DeviceAdminReceiver;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
public class AdminReceiver extends DeviceAdminReceiver {
@Override
public DevicePolicyManager getManager(Context context) {
Log.i("XiaoMaGuo", " getManager() ");
return super.getManager(context);
}
@Override
public ComponentName getWho(Context context) {
Log.i("XiaoMaGuo", " getWho() ");
return super.getWho(context);
}
/**
*
*/
@Override
public void onDisabled(Context context, Intent intent) {
Log.i("XiaoMaGuo", " onDisabled() ");
Toast.makeText(context, " ", Toast.LENGTH_SHORT).show();
super.onDisabled(context, intent);
}
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
Log.i("XiaoMaGuo", " onDisableRequested() -- , ");
return super.onDisableRequested(context, intent);
}
/**
*
*/
@Override
public void onEnabled(Context context, Intent intent) {
Log.i("XiaoMaGuo", " onEnabled() ");
Toast.makeText(context, " ", Toast.LENGTH_SHORT).show();
super.onEnabled(context, intent);
}
@Override
public void onPasswordChanged(Context context, Intent intent) {
Log.i("XiaoMaGuo", " onPasswordChanged() -- : ");
super.onPasswordChanged(context, intent);
}
@Override
public void onPasswordFailed(Context context, Intent intent) {
Log.i("XiaoMaGuo", " onPasswordFailed() ");
super.onPasswordFailed(context, intent);
}
@Override
public void onPasswordSucceeded(Context context, Intent intent) {
Log.i("XiaoMaGuo", " onPasswordSucceeded() ");
super.onPasswordSucceeded(context, intent);
}
@Override
public void onReceive(Context context, Intent intent) {
Log.i("XiaoMaGuo", " onReceive() ");
super.onReceive(context, intent);
}
@Override
public IBinder peekService(Context myContext, Intent service) {
Log.i("XiaoMaGuo", " peekService() ");
return super.peekService(myContext, service);
}
}
4.관련 관리 권한 을 활성화 하 는 작업
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
//
//EXTRA_DEVICE_ADMIN ,
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
// (additional explanation)
//EXTRA_ADD_EXPLANATION
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "-- , , --");
startActivityForResult(intent, 0);
package com.xiaoma.www;
import com.xiaoma.www.R;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* @Title: DevicePolicyManagerDemoActivity.java
* @Package com.xiaoma.www
* @Description:
* @author MZH
* @version V2.2
*/
public class DevicePolicyManagerDemoActivity extends Activity {
private Button startPermissionBtn;
private Button stopPermissionBtn;
private Button sysLockBtn;
private DevicePolicyManager dpm;
private ComponentName componentName ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//
init();
}
/**
*
*/
private void init(){
//
startPermissionBtn = (Button)findViewById(R.id.button1);
stopPermissionBtn = (Button)findViewById(R.id.button2);
sysLockBtn = (Button)findViewById(R.id.button3);
startPermissionBtn.setOnClickListener(listener);
stopPermissionBtn.setOnClickListener(listener);
sysLockBtn.setOnClickListener(listener);
//
dpm = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
componentName = new ComponentName(this, AdminReceiver.class);
}
/**
* , ,
* , , ,
* , 。。
*/
private OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
//
switch (v.getId()) {
case R.id.button1:
//
startDeviceManager();
break;
case R.id.button2:
//
stopDeviceManager();
break;
case R.id.button3:
//
sysLock();
break;
default:
break;
}
}
};
/**
*
*/
private void startDeviceManager(){
// ,
// Intent (DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
// EXTRA_DEVICE_ADMIN 、 EXTRA_ADD_EXPLANATION
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
//
//EXTRA_DEVICE_ADMIN ,
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
// (additional explanation)
//EXTRA_ADD_EXPLANATION
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "-- , , --");
startActivityForResult(intent, 0);
}
/**
*
*/
private void stopDeviceManager(){
Log.i("XiaoMaGuo","------ unActiveManage ------");
boolean active = dpm.isAdminActive(componentName);
if (active) {
dpm.removeActiveAdmin(componentName);
}
}
/**
*
*/
private void sysLock(){
boolean active = dpm.isAdminActive(componentName);
if (active) {
dpm.lockNow();
}
}
/**
* manager pwd setting
*/
/*private void updatePolicies() {
SharedPreferences prefs = getSamplePreferences(this);
final int pwQuality = prefs.getInt(PREF_PASSWORD_QUALITY,
DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
final int pwLength = prefs.getInt(PREF_PASSWORD_LENGTH, 0);
final int maxFailedPw = prefs.getInt(PREF_MAX_FAILED_PW, 0);
boolean active = dpm.isAdminActive(componentName);
if (active) {
dpm.setPasswordQuality(componentName, pwQuality);
dpm.setPasswordMinimumLength(componentName, pwLength);
dpm.setMaximumFailedPasswordsForWipe(componentName, maxFailedPw);
}
} */
/**
* update pwd
*/
/*private void updatePolicies() {
SharedPreferences prefs = getSamplePreferences(this);
final int pwQuality = prefs.getInt(PREF_PASSWORD_QUALITY,
DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
final int pwLength = prefs.getInt(PREF_PASSWORD_LENGTH, 0);
final int maxFailedPw = prefs.getInt(PREF_MAX_FAILED_PW, 0);
boolean active = dpm.isAdminActive(componentName);
if (active) {
dpm.setPasswordQuality(componentName, pwQuality);
dpm.setPasswordMinimumLength(componentName, pwLength);
dpm.setMaximumFailedPasswordsForWipe(componentName, maxFailedPw);
}
}*/
}
5.잠 금 화면 을 실현 하고 mDevice Policy Manager.lockNow()를 작 동 합 니 다.
두 선배 님 의 코드 참고:
http://mzh3344258.blog.51cto.com/1823534/748998
http://blog.sina.com.cn/s/blog_46c97a9d0100ydr1.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.