现在的位置: 首页 > 综合 > 正文

Android获取系统隐藏服务实现锁屏

2013年09月20日 ⁄ 综合 ⁄ 共 1059字 ⁄ 字号 评论关闭

实现原理:当按锁屏键时,会发出一个广播,当界面接收到一个广播就可以实现锁频。我们可以调用IDevicePolicyManager服务中的lockNow方法来发送一个广播实现锁屏。

IDevicePolicyManager是被系统隐藏掉的,需要通过反射还获取此服务。

 步骤:

1.创建MyAdmin的广播接收者继承DeviceAdminReceiver

2.通过反射 ,获取IDevicePolicyManager服务 ,IDevicePolicyManager通过AIDL来获取出来。

3.注册广播接收者为admin设备

4.获取服务中的方法

效果图:

    

 

注册MyAdmin广播接收者:

  1. <receiver android:name=".MyAdmin">  
  2.     <meta-data android:name="android.app.device_admin"  
  3.         android:resource="@xml/my_admin" />  
  4.     <intent-filter>  
  5.         <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />  
  6.     </intent-filter>  
  7. </receiver>  

my_admin.xml:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <device-admin xmlns:android="http://schemas.android.com/apk/res/android">  
  3.         <uses-policies>  
  4.                 <limit-password />  
  5.                 <watch-login />  
  6.                 <reset-password />  
  7.                 <force-lock />  
  8.                 <wipe-data />  
  9.         </uses-policies>  
  10. </device-admin>  

反射获取服务、注册权限、实现锁屏:

  1. public class LockActivity extends Activity {  
  2.     IDevicePolicyManager mService;  
  3.     @Override

抱歉!评论已关闭.