android 一键锁屏实现
16lz
2021-01-23
参考 https://f-droid.org/repository/browse/?fdid=it.reyboz.screenlock
1,写一个页面,主题用android:theme="@android:style/Theme.NoDisplay" 这样就没有闪退的效果。
import android.app.Activity;import android.app.admin.DevicePolicyManager;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.util.Log;import com.example.lenovo.bean.R;public class MainActivity extends Activity { final static int ENABLE_ADMIN = 1; final static int SUCESS = -1; private ComponentName mAdminName = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mAdminName = new ComponentName(this, AdminManageReceiver.class); DevicePolicyManager mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);//在设备上执行管理政策 if (!mDPM.isAdminActive(mAdminName)) {//如果未激活 showAdminManagement();//打开手机设备管理器 } if (mDPM.isAdminActive(mAdminName)) { mDPM.lockNow();//执行锁屏 } else { Log.e("screenlock", "Unable to lock the phone D:"); } finish(); } private void showAdminManagement() { // TODO Auto-generated method stub Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);//打开手机设备管理器的intent intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminName); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, R.string.desc_enable_admin); startActivityForResult(intent, ENABLE_ADMIN); }}
,2,注册一个设备管理员权限接收器,并绑定权限BIND_DEVICE_ADMIN
import android.app.admin.DeviceAdminReceiver;
public class AdminManageReceiver extends DeviceAdminReceiver { //注册一个接收器接受设备管理器是否激活}
android:name="it.reyboz.screenslock.MainActivity" android:theme="@android:style/Theme.NoDisplay" android:label="@string/app_name" android:excludeFromRecents="true" > android:name="android.intent.action.MAIN" /> android:name="android.intent.category.DEFAULT" /> android:name="android.intent.category.LAUNCHER" /> android:name="android.intent.action.ASSIST" /> android:name="it.reyboz.screenslock.AdminManageReceiver" android:label="@string/app_name" android:permission="android.permission.BIND_DEVICE_ADMIN" > android:name="android.app.device_admin" android:resource="@xml/device_admin" /> android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
需要配置强制锁屏
Android 2.2 SDK提供了一个可管理和操作设备的API叫DevicePolicyManager,使用这个API你可以接管手机的应用权限,对手机做出很多大胆的操作,比如锁屏、恢复出厂设置、设置密码、强制清除密码,修改密码、设置屏幕灯光渐暗时间间隔等操作。
android:resource="@xml/device_admin" />
xml文件如下
3,源码地址https://f-droid.org/repo/it.reyboz.screenlock_2_src.tar.gz
更多相关文章
- 【源码分享下载】每日更新之Android项目源码---手机天气预报系统
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- 【Android手机游戏】贪吃蛇(1)
- 用angularjs写android应用连手机调试的步骤
- Android是什么 之三手机之硬件形态
- Android Studio在Gradle中隐藏Keystore密码
- (Android)react-native获得手机的Android版本号
- 安卓手机常见名词解释