软件控制屏幕亮灭
发布日期:2021-06-29 15:22:00 浏览次数:3 分类:技术文章

本文共 2708 字,大约阅读时间需要 9 分钟。

package com.example.screen_off;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.os.PowerManager;import android.os.SystemClock;import android.util.Log;import android.view.Menu;public class MainActivity extends Activity {	private Timer timer;	private TimerTask timerTask = new TimerTask() {		@Override		public void run() {			// TODO Auto-generated method stub			if (isScreenOn) {				if (0 >= curr_time) {					PM.goToSleep(SystemClock.uptimeMillis());					Log.d("lxmlxm", "mScreenOffReceiver-->" + "dao");				} else {					curr_time--;					Log.d("lxmlxm", "mScreenOffReceiver-->" + curr_time);				}			}		}	};;	private PowerManager PM;	private int curr_time = 5;	private boolean isScreenOn = true;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		registerComponent();		timer = new Timer();		PM = (PowerManager) getSystemService(POWER_SERVICE);		timerTask = new TimerTask() {			@Override			public void run() {				// TODO Auto-generated method stub				if (isScreenOn) {					if (0 >= curr_time) {						PM.goToSleep(SystemClock.uptimeMillis());						Log.d("lxmlxm", "mScreenOffReceiver-->" + "dao");					} else {						curr_time--;						Log.d("lxmlxm", "mScreenOffReceiver-->" + curr_time);					}				}			}		};		if (timer == null) {			timer = new Timer();		}		timer.schedule(timerTask, 1000, 1000);	}	@Override	public boolean onCreateOptionsMenu(Menu menu) {		// Inflate the menu; this adds items to the action bar if it is present.		getMenuInflater().inflate(R.menu.main, menu);		return true;	}	public void registerComponent() {		// TODO Auto-generated method stub		// if(DBG) Log.d(TAG, "registerComponent()");		IntentFilter mScreenOnOrOffFilter = new IntentFilter();		mScreenOnOrOffFilter.addAction("android.intent.action.SCREEN_ON");		mScreenOnOrOffFilter.addAction("android.intent.action.SCREEN_OFF");		// mScreenOnOrOffFilter.addAction(StarLockView.SHOW_MUSIC);		registerReceiver(mScreenOnOrOffReceiver, mScreenOnOrOffFilter);	}	// 监听来自用户按Power键点亮点暗屏幕的广播	private BroadcastReceiver mScreenOnOrOffReceiver = new BroadcastReceiver() {		@Override		public void onReceive(Context context, Intent intent) {			Log.d("lxmlxm", "mScreenOffReceiver-->" + intent.getAction());			if (intent.getAction().equals("android.intent.action.SCREEN_ON")) {				isScreenOn = true;			} else if (intent.getAction().equals(					"android.intent.action.SCREEN_OFF")) {				// timer.cancel();				isScreenOn = false;				curr_time = 5;			}		}	};}

转载地址:https://codegg.blog.csdn.net/article/details/21404509 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:电子书源码分享
下一篇:java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月21日 09时28分42秒