2024年4月11日发(作者:)
Android:屏保软件的开发
Android作为一个新兴的手机智能操作系统已经越来越热门,关于Android平台下的
开发也是五花八门,最近做了一个Android手机屏保软件,分享一下,不正之处请大家多
多指教。
大致的过程是这样的:首先有一个Service,当然这个Service在主Activity中启动,
在Service中注册一个receiver,该receiver 监听系统的Screen Off(即屏幕关闭) 事件,
当然在Service中要关闭原有的屏保(关闭系统屏保需要再配置文件中获得权限)。然后在
onReceive方法中启动自己的屏保Activity。有一点需要注意到得是Screen off 事件不能
在配置文件中注册,现在还不清楚这是什么原因,多以receiver
必须在Java代码中声明和注册。
下面附上部分代码:
Service:
这两个变量主要是为了关闭系统原有屏保,下面将用到
KeyguardManager mKeyguardManager=null;
private KeyguardLock mKeyguardLock=null;
关闭系统屏保:
mKeyguardManager=
(KeyguardManager)getSystemService(RD_SERVICE);
mKeyguardLock= guardLock("");
eKeyguard();
注册receiver:
BroadcastReceiver mMasterResetReciever= new BroadcastReceiver() {
public void onReceive(Context context, Intent intent){
try{
Intent i = new Intent();
gs(_ACTIVITY_NEW_TASK);
ss(context, );
ctivity(i);
//finish();
}catch(Exception e){
Log.i("Output:", ng());
}
}
};
registerReceiver(mMasterResetReciever,
IntentFilter(_SCREEN_OFF));
new
可以看到在receiver的onReceive()函数中启动一个屏保Activity。
之后我们需要再配置文件中申请权限:
android:name="E_KEYGUARD">
将屏保Activity完成,程序就可以运行啦!!
附:
将Activity全屏显示的方法:
requestWindowFeature(E_NO_TITLE);
getWindow().setFlags
(
_FULLSCREEN,
_FULLSCREEN
);
setContentView();
注意:
setContentView();全屏代码之后,否则无效
任意键关闭屏保Activity可以通过重写onKeyDown()函数来实现:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
own(keyCode, event);
finish();
return true;
}


发布评论