android 屏幕保护图片,android 屏幕保护

首先,需要启动一个后台服务,用于注册一个BroadcastReceiver

这个BroadcastReceiver用于监听Intent.ACTION_SCREEN_OFF

这样在发生这个事件Intent.ACTION_SCREEN_OFF 也就是用户锁屏或者屏幕上锁时触发。

Service中注册BroadcastReceiver代码

view plaincopy to clipboardprint?

package com.pingbao;

import android.app.KeyguardManager;

import android.app.Service;

import android.app.KeyguardManager.KeyguardLock;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.os.IBinder;

import android.util.Log;

public class ZyScreenService extends Service {

KeyguardManager mKeyguardManager = null;

private KeyguardLock mKeyguardLock = null;

@Override

public IBinder onBind(Intent arg0) {

// TODO Auto-generated method stub

return null;

}

@Override

public void onCreate()

{

// TODO Auto-generated method stub

super.onCreate();

}

@Override

public void onStart(Intent intent, int startId)

{

// TODO Auto-generated method stub

Log.i("in Service","in Service");

mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);

mKeyguardLock = mKeyguardManager.newKeyguardLock("");

mKeyguardLock.disableKeyguard();

Log.i("in Service1","in Service1");

BroadcastReceiver mMasterResetReciever = new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

try {

Intent i = new Intent();

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

i.setClass(context, ZyScreenSaver.class);

context.startActivity(i);

// finish();

Log.i("BroadcastReceiver","BroadcastReceiver");

} catch (Exception e) {

Log.i("Output:", e.toString());

}

}

};

registerReceiver(mMasterResetReciever, new IntentFilter(

Intent.ACTION_SCREEN_OFF));

}

}

然后在我们启动的ZyScreenSaver这个屏保界面Activity里写上

view plaincopy to clipboardprint?

package com.pingbao;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.DialogInterface.OnClickListener;

import android.os.Bundle;

import android.util.Log;

import android.view.KeyEvent;

import android.view.Window;

import android.view.WindowManager;

import android.widget.ArrayAdapter;

public class ZyScreenSaver extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.main);

Log.i("MyScreenSaver", "MyScreenSaver");

}

public boolean onKeyDown(int keyCode, KeyEvent event) {

super.onKeyDown(keyCode, event);

if (keyCode == KeyEvent.KEYCODE_BACK) {

Log.i("4", "4");

showDialog(1);

}

// finish();

return true;

}

protected Dialog onCreateDialog(int id) {

switch (id) {

case 1:

return new AlertDialog.Builder(ZyScreenSaver.this).setIcon(

R.drawable.icon).setTitle("退出屏保").setMessage(

"是否退出屏保").setPositiveButton("确定",

new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

finish();

}

})

.setNegativeButton("取消",

new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

removeDialog(1);

}

})

.create();

}

return null;

}

}

然后在我们的主界面里写上启动服务就可以了

view plaincopy to clipboardprint?

package com.pingbao;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.Window;

import android.view.WindowManager;

public class Zypingbao extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Log.i("pingbao","pingbao");

Intent mService=new Intent(Zypingbao.this,ZyScreenService.class);//启动服务

mService.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startService(mService);

}

}

在Manifest里贴权限

view plaincopy to clipboardprint?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值