完成自定义service后,自定义service参考之前的博客.

在frameworks/base/core/java/android/app/customized/ICustomizedService.aidl定义方法

package android.app.customized; interface ICustomizedService{    boolean setLockPassword(String pwd);    boolean unlockScreen();}

 在frameworks/base/core/java/android/app/customized/CustomizedManager.java中实现方法

package android.app.customized; import android.util.Log;import android.content.Context;import android.content.Intent;import android.os.Binder;import android.os.RemoteException;import android.provider.Settings;import java.io.IOException;import android.os.ServiceManager;import android.os.IBinder;import java.util.List;import android.app.ActivityManager;import android.graphics.Bitmap;  public class CustomizedManager{    private static final String TAG="CustomizedManager";    private static final boolean DBG=true;        private static ICustomizedService mService;    private final Context mContext;      public CustomizedManager(Context context){        mContext = context;        mService = ICustomizedService.Stub.asInterface(                ServiceManager.getService("customized"));    }    private static ICustomizedService getService(){        if (mService != null) {            return mService;        }               IBinder b = ServiceManager.getService("customized");        mService = ICustomizedService.Stub.asInterface(b);        return mService;    }     public boolean setLockPassword(String pwd){    ICustomizedService service = getService();        try {            return service.setLockPassword(pwd);        } catch (RemoteException e) {}        return false;    }     public boolean unlockScreen(){    ICustomizedService service = getService();        try {            return service.unlockScreen();        } catch (RemoteException e) {}        return false;    }  }

在frameworks/base/core/java/android/app/customized/CustomizedService.java中实现一下方法

    public boolean setLockPassword(String pwd) {        long ident = Binder.clearCallingIdentity();        LockPatternUtils lockPatternUtils = new LockPatternUtils(mContext);        lockPatternUtils.saveLockPassword(pwd, null, lockPatternUtils                .getRequestedPasswordQuality(mContext.getUserId()),                UserHandle.USER_OWNER);        lockPatternUtils.setLockScreenDisabled(false, mContext.getUserId());        boolean result = lockPatternUtils.isLockScreenDisabled(mContext                .getUserId());        Log.d(TAG, "setLockPassword" + !result);        Binder.restoreCallingIdentity(ident);        return !result;    }    public boolean unlockScreen() {        long ident = Binder.clearCallingIdentity();        boolean checkResult = true;        try {            lockPatternUtils.clearLock(UserHandle.USER_OWNER);            lockPatternUtils.setLockScreenDisabled(true, mContext.getUserId());            Intent sendlock = new Intent(                    "com.android.systemui.keyguard.unlock");            mContext.sendBroadcastAsUser(sendlock, UserHandle.OWNER);                 Thread.sleep(200);  //sleep 0.2s            lockPatternUtils.setLockScreenDisabled(false, mContext.getUserId());        } catch (Exception e) {            checkResult = false;        }        Binder.restoreCallingIdentity(ident);    }

然后修改frameworks/base/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java 文件

private static final String UNLOCK_KEYGUARD_ACTION = "com.android.systemui.keyguard.unlock";    IntentFilter filter = new IntentFilter();    filter.addAction(UNLOCK_KEYGUARD_ACTION);  //在IntentFilter中添加UNLOCK_KEYGUARD_ACTION    Intent intent = context.registerReceiver(mDockReceiver, filter);                                //在mDockReceiver中处理收到的intent    if(UNLOCK_KEYGUARD_ACTION.equals(action)){        handleKeyguardDone(true);  //在收到intent后,receiver中做处理    }

 

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. 转载]android 实现qq聊天对话界面效果
  5. Android点击左右按钮实现左右滑动页面切换
  6. android 升级包检测并更新实现
  7. Android(安卓)比Timer更好方法
  8. Android中AppWidget使用方法
  9. [Android] 录音与播放录音实现

随机推荐

  1. Android(安卓)N 适配心得
  2. Android入门前言(一)之------Android应用
  3. Android实践:《简易影音播放器》的实现及
  4. 为什么Android不如iOS那么顺滑?
  5. Android(安卓)使用Google官方组件搭建 MV
  6. android UI进阶之style和theme的使用
  7. Android: NDK编程入门笔记
  8. SSH_day01:helloWorld
  9. android 画图片的几种方法
  10. Android菜鸟的成长笔记(28)——Google官方