android锁屏(三)

锁屏服务类。1,启动后首先注册接受屏幕的关闭和开启的广播:广播中处理开屏锁屏任务;2,获取电话管理服务,注册通话状态监听:监听手机响铃状态、挂起状态、空闲状态。以Handler方式执行不同的任务。同样这里也是处理闹钟啊一些可以你认为可以在锁屏时候运行的东西。这里我没写,Dome而已,还是凑合看看吧

[java]  view plain copy print ?
  1. import android.app.KeyguardManager;  
  2. import android.app.Service;  
  3. import android.app.KeyguardManager.KeyguardLock;  
  4. import android.content.BroadcastReceiver;  
  5. import android.content.Context;  
  6. import android.content.Intent;  
  7. import android.content.IntentFilter;  
  8. import android.os.Handler;  
  9. import android.os.IBinder;  
  10. import android.os.Message;  
  11. import android.os.PowerManager;  
  12. import android.telephony.PhoneStateListener;  
  13. import android.telephony.TelephonyManager;  
  14. import android.util.Log;  
  15.   
  16. public class LockService extends Service {  
  17.   
  18.     protected static final String TAG = "SAFLockService";  
  19.     KeyguardManager mKeyguardManager;  
  20.     private KeyguardLock mKeyguardLock = null;  
  21.     private TelephonyManager tm;  
  22.     private Context mContext;  
  23.   
  24.     @Override  
  25.     public void onCreate() {  
  26.         super.onCreate();  
  27.         mContext = this.getApplicationContext();  
  28.   
  29.         Log.v(TAG, "=============onCreate:================");  
  30.         IntentFilter filter = new IntentFilter();  
  31.         filter.addAction(Intent.ACTION_SCREEN_OFF);  
  32.         filter.addAction(Intent.ACTION_SCREEN_ON);  
  33.         registerReceiver(mScreenReceiver, filter);  
  34.   
  35.         mKeyguardManager = (KeyguardManager) this  
  36.                 .getSystemService(Context.KEYGUARD_SERVICE);  
  37.         mKeyguardLock = mKeyguardManager.newKeyguardLock("");  
  38.         mKeyguardLock.disableKeyguard();  
  39.   
  40.         tm = (TelephonyManager) this  
  41.                 .getSystemService(Context.TELEPHONY_SERVICE);  
  42.         SAFLockPhoneCallListener myPhoneCallListener = new SAFLockPhoneCallListener();  
  43.         tm.listen(myPhoneCallListener, PhoneStateListener.LISTEN_CALL_STATE);  
  44.   
  45.         SAFLockConstants.loadInitParam(this);  
  46.         this.setForeground(true);  
  47.     }  
  48.   
  49.     @Override  
  50.     public IBinder onBind(Intent intent) {  
  51.         return null;  
  52.     }  
  53.   
  54.     @Override  
  55.     public void onDestroy() {  
  56.         super.onDestroy();  
  57.         mKeyguardLock.reenableKeyguard();  
  58.         mHandler.removeMessages(SAFLockConstants.EVENT_LOCK_SCREEN);  
  59.         unregisterReceiver(mScreenReceiver);  
  60.     }  
  61.   
  62.     /** 
  63.      * set a listener to listen the phonestate,that we can do somthing by one 
  64.      * of phonestates. 
  65.      *  
  66.      * @author liao  
  67.      */  
  68.     public class SAFLockPhoneCallListener extends PhoneStateListener {  
  69.         public void onCallStateChanged(int state, String incomingNumber) {  
  70.             switch (state) {  
  71.             // Phone in idle  
  72.             case TelephonyManager.CALL_STATE_IDLE:  
  73.                 Log.v(TAG, "=============CALL_STATE_IDLE:================");  
  74.                 SAFLockConstants.PHONE_STATE = TelephonyManager.CALL_STATE_IDLE;  
  75.                 if (SAFLockConstants.isLockecd) {  
  76.                     mHandler.removeMessages(SAFLockConstants.EVENT_LOCK_SCREEN);  
  77.                     mHandler.sendEmptyMessage(SAFLockConstants.EVENT_LOCK_SCREEN);  
  78.                 }  
  79.                 break;  
  80.             // Phone is hung up  
  81.             case TelephonyManager.CALL_STATE_OFFHOOK:  
  82.                 Log.v(TAG, "=============CALL_STATE_OFFHOOK:================");  
  83.                 SAFLockConstants.PHONE_STATE = TelephonyManager.CALL_STATE_OFFHOOK;  
  84.                 break;  
  85.             // Cell phone ring  
  86.             case TelephonyManager.CALL_STATE_RINGING:  
  87.                 Log.v(TAG, "=============CALL_STATE_RINGING:================");  
  88.                 SAFLockConstants.PHONE_STATE = TelephonyManager.CALL_STATE_RINGING;  
  89.                 break;  
  90.             default:  
  91.                 Log.v(TAG, "=============default:================");  
  92.                 break;  
  93.             }  
  94.         }  
  95.     }  
  96.   
  97.     private Handler mHandler = new Handler() {  
  98.   
  99.         @Override  
  100.         public void handleMessage(Message msg) {  
  101.   
  102.             switch (msg.what) {  
  103.   
  104.             case SAFLockConstants.EVENT_LOCK_SCREEN:  
  105.   
  106.                 // ====read user customization  
  107.                 SAFLockConstants.updateLockIntent(  
  108.                         "saf.cmcc.lock.THEME_DEFAULT", mContext);  
  109.   
  110.                 // keep the task running 2s in sleeping mode.  
  111.                 PowerManager pm = (PowerManager) mContext  
  112.                         .getSystemService(Context.POWER_SERVICE);  
  113.                 // Keep the CPU running, and the screen and keyboard light may  
  114.                 // be closed.  
  115.                 PowerManager.WakeLock mWakeLock = pm.newWakeLock(  
  116.                         PowerManager.PARTIAL_WAKE_LOCK, "SAFLock");  
  117.                 mWakeLock.acquire(2000L);  
  118.   
  119.                 Intent mLockScreenIntent = new Intent(mContext,  
  120.                         SAFFullScreenActivity.class);  
  121.                 mLockScreenIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  122.                 mLockScreenIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);  
  123.                 mContext.startActivity(mLockScreenIntent);  
  124.                 break;  
  125.             default:  
  126.                 break;  
  127.             }  
  128.         }  
  129.     };  
  130.   
  131.     private BroadcastReceiver mScreenReceiver = new BroadcastReceiver() {  
  132.   
  133.         @Override  
  134.         public void onReceive(Context context, Intent intent) {  
  135.             String action = intent.getAction();  
  136.   
  137.             if (Intent.ACTION_SCREEN_OFF.equalsIgnoreCase(action)) {  
  138.   
  139.                 // load intent  
  140.                 if (SAFLockConstants.LOCK_ENABLE  
  141.                         && SAFLockConstants.PHONE_STATE == TelephonyManager.CALL_STATE_IDLE) {  
  142.   
  143.                     // =====send message after a short delay  
  144.                     if (!SAFLockConstants.isLockecd) {  
  145.                         mHandler.removeMessages(SAFLockConstants.EVENT_LOCK_SCREEN);  
  146.                         mHandler.sendEmptyMessageDelayed(  
  147.                                 SAFLockConstants.EVENT_LOCK_SCREEN, 100);  
  148.                     }  
  149.                 }  
  150.             } else if (Intent.ACTION_SCREEN_ON.equalsIgnoreCase(action)) {  
  151.                 // ====remove unprocessed event.  
  152.                 mHandler.removeMessages(SAFLockConstants.EVENT_LOCK_SCREEN);  
  153.             }  
  154.         }  
  155.     };  
  156. }  


注释是英文的,上头要求,没办法

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值