Android Screen Saver creation and source code

Source: Internet
Author: User

First, you need to start a background service to register a broadcastreceiver.

 

This broadcastreceiver is used to listen for intent. action_screen_off

 

In this case, intent. action_screen_off is triggered when the user locks the screen or locks the screen.

 

Register broadcastreceiver code in Service

Package COM. pingbao; <br/> Import android. app. keyguardmanager; <br/> Import android. app. service; <br/> Import android. app. keyguardmanager. keyguardlock; <br/> Import android. content. broadcastreceiver; <br/> Import android. content. context; <br/> Import android. content. intent; <br/> Import android. content. intentfilter; <br/> Import android. OS. ibinder; <br/> Import android. util. log; <br/> public class zyscreenservice extends Service {<br/> keyguardmanager mkeyguardmanager = NULL; <br/> private keyguardlock mkeyguardlock = NULL; <br/> @ override <br/> Public ibinder onbind (intent arg0) {<br/> // todo auto-generated method stub <br/> return NULL; <br/>}< br/> @ override <br/> Public void oncreate () <br/>{< br/> // todo auto-generated method stub </P> <p> super. oncreate (); <br/>}< br/> @ override <br/> Public void onstart (intent, int startid) <br/> {<br/> // todo auto-generated method stub <br/> log. I ("in service", "in service"); <br/> mkeyguardmanager = (keyguardmanager) getsystemservice (context. keyguard_service); <br/> mkeyguardlock = mkeyguardmanager. newkeyguardlock (""); <br/> mkeyguardlock. disablekeyguard (); <br/> log. I ("in service1", "In service1"); <br/> broadcastreceiver mmasterresetreciever = new broadcastreceiver () {<br/> Public void onreceive (context, intent) {<br/> try {<br/> intent I = new intent (); <br/> I. setflags (intent. flag_activity_new_task); <br/> I. setclass (context, zyscreensaver. class); <br/> context. startactivity (I); <br/> // finish (); <br/> log. I ("broadcastreceiver", "broadcastreceiver"); <br/>}catch (exception e) {<br/> log. I ("output:", E. tostring (); <br/>}< br/>}; <br/> registerreceiver (mmasterresetreciever, new intentfilter (<br/> intent. action_screen_off); <br/>}</P> <p >}< br/> 

 

Then write it in the activity of the Screen Saver interface zyscreensaver we started.

Package COM. pingbao; <br/> Import android. app. activity; <br/> Import android. app. alertdialog; <br/> Import android. app. dialog; <br/> Import android. content. dialoginterface; <br/> Import android. content. intent; <br/> Import android. content. dialoginterface. onclicklistener; <br/> Import android. OS. bundle; <br/> Import android. util. log; <br/> Import android. view. keyevent; <br/> Import android. view. window; <br/> Import android. view. windowmanager; <br/> Import android. widget. arrayadapter; <br/> public class zyscreensaver extends activity {<br/> @ override <br/> Public void oncreate (bundle savedinstancestate) {<br/> super. oncreate (savedinstancestate); <br/> requestwindowfeature (window. feature_no_title); <br/> getwindow (). setflags (windowmanager. layoutparams. flag_fullscreen, <br/> windowmanager. layoutparams. flag_fullscreen); <br/> setcontentview (R. layout. main); <br/> log. I ("myscreensaver", "myscreensaver"); <br/>}< br/> Public Boolean onkeydown (INT keycode, keyevent event) {<br/> super. onkeydown (keycode, event); <br/> If (keycode = keyevent. keycode_back) {<br/> log. I ("4", "4"); <br/> showdialog (1); <br/>}< br/> // finish (); <br/> return true; <br/>}< br/> protected dialog oncreatedialog (int id) {<br/> switch (ID) {<br/> case 1: <br/> return New alertdialog. builder (zyscreensaver. this ). seticon (<br/> r. drawable. icon ). settitle ("Exit Screen Saver "). setmessage (<br/> "Exit Screen Saver "). setpositivebutton ("OK", <br/> New onclicklistener () {<br/> @ override <br/> Public void onclick (dialoginterface dialog, int which) {<br/> // todo auto-generated method stub <br/> finish (); <br/>}< br/>}) <br/>. setnegativebutton ("cancel", <br/> New onclicklistener () {<br/> @ override <br/> Public void onclick (dialoginterface dialog, int which) {<br/> // todo auto-generated method stub <br/> removedialog (1); </P> <p >}< br/> }) <br/>. create (); <br/>}< br/> return NULL; <br/>}< br/>

 

Then write the startup service in our main interface.

 

Package COM. pingbao; <br/> Import android. app. activity; <br/> Import android. content. intent; <br/> Import android. OS. bundle; <br/> Import android. util. log; <br/> Import android. view. window; <br/> Import android. view. windowmanager; <br/> public class zypingbao extends activity {<br/>/** called when the activity is first created. */<br/> @ override <br/> Public void oncreate (bundle savedinstancestate) {<br/> super. oncreate (savedinstancestate); <br/> setcontentview (R. layout. main); <br/> log. I ("pingbao", "pingbao"); <br/> intent mservice = new intent (zypingbao. this, zyscreenservice. class); // start the service <br/> mservice. addflags (intent. flag_activity_new_task); <br/> startservice (mservice); </P> <p >}< br/>} 

 

Paste permissions in manifest

 

<Uses-Permission Android: Name = "android. Permission. disable_keyguard"/> 

 

Source code download

Http://download.csdn.net/source/2996510

 

 

Another way to block the Home key is

Public void onattachedtowindow () {<br/> This. getwindow (). settype (windowmanager. layoutparams. type_keyguard); <br/> super. onattachedtowindow (); <br/>} 

In this way

Public Boolean onkeydown (INT keycode, keyevent event)

The function can listen to home.

 

This blog is copyrighted by csdn blogger Zeng Yang

Http://blog.csdn.net/Zengyangtech/archive/2011/01/21/6157508.aspx

Reprinted please note

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.