/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.android.apis.app;
import com.example.android.apis.R;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.app.admin.DeviceAdminReceiver;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import java.util.List;
/**
* This activity provides a comprehensive UI for exploring and operating the DevicePolicyManager
* api. It consists of two primary modules:
*
* 1: A device policy controller, implemented here as a series of preference fragments. Each
* one contains code to monitor and control a particular subset of device policies.
*
* 2: A DeviceAdminReceiver, to receive updates from the DevicePolicyManager when certain aspects
* of the device security status have changed.
*/
public class DeviceAdminSample extends PreferenceActivity {
// Miscellaneous utilities and definitions
private static final String TAG = "DeviceAdminSample";
private static final int REQUEST_CODE_ENABLE_ADMIN = 1;
private static final int REQUEST_CODE_START_ENCRYPTION = 2;
private static final long MS_PER_MINUTE = 60 * 1000;
private static final long MS_PER_HOUR = 60 * MS_PER_MINUTE;
private static final long MS_PER_DAY = 24 * MS_PER_HOUR;
// The following keys are used to find each preference item
private static final String KEY_ENABLE_ADMIN = "key_enable_admin";
private static final String KEY_DISABLE_CAMERA = "key_disable_camera";
private static final String KEY_DISABLE_KEYGUARD_WIDGETS = "key_disable_keyguard_widgets";
private static final String KEY_DISABLE_KEYGUARD_SECURE_CAMERA
= "key_disable_keyguard_secure_camera";
private static final String KEY_CATEGORY_QUALITY = "key_category_quality";
private static final String KEY_SET_PASSWORD = "key_set_password";
private static final String KEY_RESET_PASSWORD = "key_reset_password";
private static final String KEY_QUALITY = "key_quality";
private static final String KEY_MIN_LENGTH = "key_minimum_length";
private static final String KEY_MIN_LETTERS = "key_minimum_letters";
private static final String KEY_MIN_NUMERIC = "key_minimum_numeric";
private static final String KEY_MIN_LOWER_CASE = "key_minimum_lower_case";
private static final String KEY_MIN_UPPER_CASE = "key_minimum_upper_case";
private static final String KEY_MIN_SYMBOLS = "key_minimum_symbols";
private static final String KEY_MIN_NON_LETTER = "key_minimum_non_letter";
private static final String KEY_CATEGORY_EXPIRATION = "key_category_expiration";
private static final String KEY_HISTORY = "key_history";
private static final String KEY_EXPIRATION_TIMEOUT = "key_expiration_timeout";
private static final String KEY_EXPIRATION_STATUS = "key_expiration_status";
private static final String KEY_CATEGORY_LOCK_WIPE = "key_category_lock_wipe";
private static final String KEY_MAX_TIME_SCREEN_LOCK = "key_max_time_screen_lock";
private static final String KEY_MAX_FAILS_BEFORE_WIPE = "key_max_fails_before_wipe";
private static final String KEY_LOCK_SCREEN = "key_lock_screen";
private static final String KEY_WIPE_DATA = "key_wipe_data";
private static final String KEY_WIP_DATA_ALL = "key_wipe_data_all";
private static final String KEY_CATEGORY_ENCRYPTION = "key_category_encryption";
private static final String KEY_REQUIRE_ENCRYPTION = "key_require_encryption";
private static final String KEY_ACTIVATE_ENCRYPTION = "key_activate_encryption";
// Interaction with the DevicePolicyManager
DevicePolicyManager mDPM;
ComponentName mDeviceAdminSample;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Prepare to work with the DPM
mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
mDeviceAdminSample = new ComponentName(this, DeviceAdminSampleReceiver.class);
}
/**
* We override this method to provide PreferenceActivity with the top-level preference headers.
*/
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.device_admin_headers, target);
}
/**
* Helper to determine if we are an active admin
*/
private boolean isActiveAdmin() {
return mDPM.isAdminActive(mDeviceAdminSample);
}
/**
* Common fragment code for DevicePolicyManager access. Provides two shared elements:
*
* 1. Provides instance variables to access activity/context, DevicePolicyManager, etc.
* 2. Provides support for the "set password" button(s) shared by multiple fragments.
*/
public static class AdminSampleFragment extends PreferenceFragment
implements OnPreferenceChangeListener, OnPreferenceClickListener{
// Useful instance variables
protected DeviceAdminSample mActivity;
protected DevicePolicyManager mDPM;
protected ComponentName mDeviceAdminSample;
protected boolean mAdminActive;
// Optional shared UI
private PreferenceScreen mSetPassword;
private EditTextPreference mResetPassword;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Retrieve the useful instance variables
mActivity = (DeviceAdminSample) getActivity();
mDPM = mActivity.mDPM;
mDeviceAdminSample = mActivity.mDeviceAdminSample;
mAdminActive = mActivity.isActiveAdmin();
// Configure the shared UI elements (if they exist)
mResetPassword = (EditTextPreference) findPreference(KEY_RESET_PASSWORD);
mSetPassword = (PreferenceScreen) findPreference(KEY_SET_PASSWORD);
if (mResetPassword != null) {
mResetPassword.setOnPreferenceChangeListener(this);
}
if (mSetPassword != null) {
mSetPassword.setOnPreferenceClickListener(this);
}
}
@Override
public void onResume() {
super.onResume();
mAdminActive = mActivity.isActiveAdmin();
reloadSummaries();
// Resetting the password via API is available only to active admins
if (mResetPassword != null) {
mResetPassword.setEnabled(mAdminActive);
}
}
/**
* Called automatically at every onResume. Should also call explicitly any time a
* policy changes that may affect other policy values.
*/
protected void
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
最新google官方ApiDemo源码 (961个子文件)
IRemoteService.aidl 1KB
ISecondary.aidl 1KB
IRemoteServiceCallback.aidl 1KB
HelloActivity.apk 5KB
animated_gif.gif 34KB
frog.gif 3KB
_package.html 24KB
_index.html 14KB
_index.html 14KB
motogp_stats.html 4KB
_index.html 3KB
_index.html 2KB
_package.html 2KB
_index.html 2KB
_index.html 1KB
_package.html 583B
_index.html 323B
_index.html 1B
DeviceAdminSample.java 43KB
MatrixTrackingGL.java 32KB
RemoteService.java 27KB
PrintCustomContent.java 26KB
GameView.java 25KB
ClockBackService.java 23KB
KeyStoreUsage.java 19KB
TouchPaint.java 19KB
AlertDialogSamples.java 19KB
LoaderThrottle.java 19KB
List6.java 18KB
PresentationActivity.java 18KB
GameControllerInput.java 18KB
LoaderCustom.java 18KB
List13.java 17KB
CubeMapActivity.java 15KB
ExternalStorage.java 15KB
MatrixPaletteRenderer.java 14KB
SystemUIModes.java 13KB
LabelMaker.java 13KB
Cheeses.java 12KB
ChangedContacts.java 12KB
Kube.java 12KB
CustomViewAccessibilityActivity.java 12KB
Shakespeare.java 12KB
FrameBufferObjectActivity.java 11KB
StatusBarNotifications.java 11KB
SpriteTextRenderer.java 11KB
PresentationWithMediaRouterActivity.java 11KB
CameraPreview.java 10KB
ServiceStartArguments.java 10KB
LayoutAnimations.java 10KB
VideoPlayerActivity.java 10KB
GLES20TriangleRenderer.java 10KB
WindowSurface.java 10KB
ContentBrowserNavActivity.java 9KB
CustomLayout.java 9KB
Sensors.java 9KB
ContentBrowserActivity.java 9KB
SearchInvoke.java 9KB
ForegroundService.java 9KB
AudioFxDemo.java 9KB
FragmentTabsFragment.java 9KB
FragmentLayout.java 8KB
AnimatorEvents.java 8KB
LoaderRetained.java 8KB
StaticTriangleRenderer.java 8KB
InternalSelectionView.java 8KB
IncomingMessage.java 8KB
DensityActivity.java 8KB
VoiceRecognition.java 8KB
LoaderCursor.java 8KB
DraggableDot.java 8KB
FragmentRetainInstance.java 8KB
Grid2.java 8KB
BouncingBalls.java 8KB
ColorPickerDialog.java 8KB
RotationVectorDemo.java 8KB
TriangleRenderer.java 7KB
LayoutAnimationsHideShow.java 7KB
IsolatedService.java 7KB
MediaPlayerDemo_Video.java 7KB
MultiPropertyAnimation.java 7KB
MessengerServiceActivities.java 7KB
Animation.java 7KB
ClipboardSample.java 7KB
FingerPaint.java 7KB
LocalServiceActivities.java 7KB
InstallApk.java 7KB
SensorTest.java 7KB
AlarmController.java 7KB
PreferencesFromCode.java 7KB
MenuInflateFromXml.java 6KB
TaskBackService.java 6KB
SmsMessagingDemo.java 6KB
Xfermodes.java 6KB
SecureView.java 6KB
FragmentDialog.java 6KB
LabelView.java 6KB
Transition3d.java 6KB
MessengerService.java 6KB
AnimationSeeking.java 6KB
共 961 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
u010154380
- 粉丝: 97
- 资源: 33
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功