Android一键锁屏开发全过程…
16lz
2023-05-28
原文地址:Android一键锁屏开发全过程【源码】【附图】 作者:狼毒花 转载: http://smallsmile.iteye.com/blog/1374823
1、主程序代码:
Java代码- privateDevicePolicyManagerpolicyManager;
- privateComponentNamecomponentName;
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.locklayout);
- //获取设备管理服务
- policyManager=(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
- //AdminReceiver继承自DeviceAdminReceiver
- componentName=newComponentName(this,AdminReceiver.class);
- mylock();
- //killMyself,锁屏之后就立即kill掉我们的Activity,避免资源的浪费;
- android.os.Process.killProcess(android.os.Process.myPid());
- }
2、其中,mylock()为:
Java代码- privatevoidmylock(){
- booleanactive=policyManager.isAdminActive(componentName);
- if(!active){//若无权限
- activeManage();//去获得权限
- policyManager.lockNow();//并锁屏
- }
- if(active){
- policyManager.lockNow();//直接锁屏
- }
- }
3、activeManage()代码为:
Java代码- privatevoidactiveManage(){
- //启动设备管理(隐式Intent)-在AndroidManifest.xml中设定相应过滤器
- Intentintent=newIntent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
- //权限列表
- intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,componentName);
- //描述(additionalexplanation)
- intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"------其他描述------");
- startActivityForResult(intent,0);
- }
4、AndroidManifest.xml
Java代码 " quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="cn.hnu"
- android:versionCode="1"
- android:versionName="1.0">
- <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
- <activityandroid:name=".LockFirst"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- <!--设备管理-->
- <receiverandroid:name=".AdminReceiver"
- android:label="@string/app_name"
- android:description="@string/app_name"
- android:permission="android.permission.BIND_DEVICE_ADMIN">
- <meta-dataandroid:name="android.app.device_admin"
- android:resource="@xml/lock_screen"/>
- <intent-filter>
- <action
- android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
- </intent-filter>
- </receiver>
- </application>
- </manifest>
5、其中lock_screen.xml(lock_screen.xml文件放在res/xml文件夹下)代码为:
Java代码 " quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">- <?xmlversion="1.0"encoding="UTF-8"?>
- <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>
请求权限界面
更多相关文章
- android EditText设置不可写
- android 使用html5作布局文件: webview跟javascript交互
- android studio调试c/c++代码
- IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13
- 锁屏界面
- android(NDK+JNI)---Eclipse+CDT+gdb调试android ndk程序
- Android(安卓)version and Linux Kernel version
- Android(安卓)闹钟管理类的使用
- Android学习篇之Menu的使用