屏幕锁屏(长时间无反应,跳出屏保)

首先先定义一个service  别忘了注册哦

 

package com.Hisense.service;

import java.util.List;

import android.app.ActivityManager;
import android.app.KeyguardManager;
import android.app.KeyguardManager.KeyguardLock;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;

import com.Hisense.consant.Constant;
import com.Hisense.hisense_video.AutoPictureActivity;
import com.Hisense.hisense_video.AutoVideoActivity;

public class MyService extends Service  {
 KeyguardManager mKeyguardManager = null;
 KeyguardLock mKeyguardLock = null;
 int meidatype;
 
 @Override
 public void onCreate() {
  // TODO Auto-generated method stub
  super.onCreate();
  Log.d("mytest","mediatyoe11"+Constant.MEDIATYPE);
  mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
  mKeyguardLock = mKeyguardManager.newKeyguardLock("");
  mKeyguardLock.disableKeyguard();
  BroadcastReceiver mMasterResetReciever = new BroadcastReceiver() {
   public void onReceive(Context context, Intent intent) {
    Log.d("mytest","mediatyoe"+Constant.MEDIATYPE);
    try {
     if(Constant.MEDIATYPE==1){
     Intent i = new Intent();
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     i.setClass(MyService.this, AutoVideoActivity.class);
     context.startActivity(i);
      Log.d("mytest","启动activity");
     // finish();
     Log.i("BroadcastReceiver","BroadcastReceiver");
     }else if(Constant.MEDIATYPE==2){
      Intent i = new Intent();
      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      i.setClass(MyService.this, AutoPictureActivity.class);
      context.startActivity(i);
     }
    } catch (Exception e) {
     Log.i("Output:", e.toString());
    }
   }
  };
  registerReceiver(mMasterResetReciever, new IntentFilter(
    Intent.ACTION_SCREEN_OFF));
 
 }
 @Override
 @Deprecated
 public void onStart(Intent intent, int startId) {}
  @Override
 public IBinder onBind(Intent intent) {
  // TODO Auto-generated method stub
  return null;
 }
}
在次服务里注册了一个广播 ,该广播用于接受屏幕长时间无操作休眠( screen_off)的事件,所以此时屏幕已经熄灭,你得强制启动activity(就是你所写的屏保activity),让屏幕跳出你的屏保画面

这是你的屏保界面:

 

package com.pingbao;
//Download by http://down.liehuo.net
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", "我是屏保");

 }

 

 

 

 

最后只要写一个mainactivity来启动服务就行了

 

 

 

package com.pingbao;

//Download by http://down.liehuo.net

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 {
 
 @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);
  
  
 }
}

 

 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 System.Windows.Forms.Application.SetSuspendState 方法来防止屏幕锁屏。这个方法有两个参数,第一个参数是一个枚举类型,用于指定要执行的操作(关机、休眠或者睡眠),第二个参数是一个布尔值,用于指定是否禁止屏幕锁屏。如果第二个参数设置为 true,那么在操作执行期间,屏幕将不会锁定。 以下是一个示例代码: ```csharp using System; using System.Windows.Forms; using System.Runtime.InteropServices; public partial class Form1 : Form { [DllImport("user32.dll", SetLastError = true)] static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref bool pvParam, uint fWinIni); private const uint SPI_SETSCREENSAVERACTIVE = 0x0011; private const uint SPIF_SENDWININICHANGE = 0x0002; private const uint SPIF_UPDATEINIFILE = 0x0001; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { bool preventScreenSaver = true; SystemParametersInfo(SPI_SETSCREENSAVERACTIVE, 0, ref preventScreenSaver, SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE); //执行操作 System.Windows.Forms.Application.SetSuspendState(PowerState.Hibernate, true, false); } } ``` 在上面的示例代码中,我们将 preventScreenSaver 参数设置为 true,以便禁用屏幕保护程序。接下来,我们调用 System.Windows.Forms.Application.SetSuspendState 方法来执行操作(这里我们使用 Hibernate 操作),并将第二个参数设置为 true,以便在操作期间禁用屏幕锁定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值