1. 程式人生 > >android 監聽電源鍵

android 監聽電源鍵

MainActivity.java

package com.example.androidtest;

import android.os.Bundle;
import android.os.PowerManager;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		startService(new Intent(this, MainService.class));
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}
MainService.java
package com.example.androidtest;

import android.app.Service;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;

public class MainService extends Service {

	private String tag="test";
	
	
	
	
	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
		Log.i(tag, "onCreate");
		MainReciver r= new MainReciver();
		IntentFilter filter= new IntentFilter();
		filter.addAction(Intent.ACTION_SCREEN_OFF);
		filter.addAction(Intent.ACTION_SCREEN_ON);
		registerReceiver(r,filter);
	}

	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		Log.i(tag, "onBind");
		return null;
	}

	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
	}

	@Override
	public void onLowMemory() {
		// TODO Auto-generated method stub
		super.onLowMemory();
	}

}

MainReciver.java
package com.example.androidtest;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;
import android.util.Log;

public class MainReciver extends BroadcastReceiver {

	String tag = "test";
	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		Log.i(tag, intent.getAction());
		PowerManager pm =(PowerManager)context.getSystemService(Context.POWER_SERVICE);
		if(pm.isScreenOn()){
			Log.e(tag, "ScreenOn");
		}else{
			Log.e(tag, "ScreenOff");
		}
	}

}

程式碼很簡單。有問題歡迎留言。

相關推薦

android 電源

MainActivity.java package com.example.androidtest; import android.os.Bundle; import android.os.PowerManager; import android.app.Activity

AndroidHome、鎖屏、解屏(落雨敏詳細講解)附原始碼

     前言:最近做視訊播放,發現當在播放時點選電源鍵進行鎖屏,視訊繼續播放問題,於是通過廣播進行監聽。廣播監聽可以用於很多地方,在此落雨敏詳細講解Home鍵、鎖屏、解屏的事件處理。先講解思路,然後在一步一步實現,下面會貼出所有程式碼。   &nbs

ReactNative Android返回,在某個頁面返回退出應用

在之前專案中,在進行返回鍵退出應用時,應用的程式碼如下: componentWillMount() { if (Platform.OS === 'android') { BackHandler.addEventListener('hardwa

android 上下左右的功能實現

  鍵盤中的上下左右與返回鍵。可以直接監聽,不需要在xml或者其他地方註冊。 主要方法是: public boolean onKeyDown(int kCode,KeyEvent kEvent) { switch(kCode) { case KeyEvent.KEYCODE

android Home和亮滅屏

1.註冊廣播 IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_CLOS

Android返回、Menu、Home

back鍵 監聽back鍵還是很簡單的,有兩種方法: 呼叫onBackPressed()方法:呼叫此方法會自動呼叫finish()。 @Override public void onBackPressed() { statement /

Android 返回-兩次返回退出App

實現原理就是:每次返回鍵進行監聽,判斷兩次返回鍵的間隙時間 //退出時的時間 private long mExitTime; //對返回鍵進行監聽 @Override

Android 手機按下Home

系統本身有這個廣播,只需要監聽這個廣播就可以了! private BroadcastReceiver mHomeKeyEventReceiver = new BroadcastReceiver() { String SYSTEM_REASON = "reaso

Android 更改軟鍵盤右下角按鍵的樣式以及的方法

一、我們在開發Android App時有時候會遇到更改軟鍵盤右下角按鍵的樣式 我們可以隨自己的需求更改軟鍵盤右下角的顯示樣式,例如:搜尋,下一步,Q(搜尋圖示) 具體對應: actionNone : 按下後游標到下一行(回車) actionGo :

Android 如何返回,彈出一個退出對話方塊

Android 如何監聽返回鍵點選事件,並建立一個退出對話方塊, 防止自己寫的應用程式不小心點選退出鍵而直接退出。自己記錄下這個簡單的demo,備用。 注:如下程式碼當時是從網上copy過來的,現在忘了它出自哪個原作者了,在此說聲抱歉。 原始碼如下: public cla

android軟鍵盤迴車並且解決預設點選兩次的問題

@Override public boolean dispatchKeyEvent(KeyEvent event) { if(event.getKeyCode()==KeyEvent.KEYCODE_ENTER&&event.getActio

Android 遮蔽BackHome

app進入的時候我們會看到一個閃屏頁,這個閃屏頁做起來很簡單,但是閃屏頁一般需要遮蔽返回鍵,去監聽一下Home鍵,為什麼需要這樣考慮呢?我們先看程式碼吧。 SplashActivity public class SplashActivity exten

Android之小技巧 - Fragment返回

使用場景  在一個Fragment中按下返回鍵,先判斷下PopupWindow是否顯示,若顯示,隱藏PopupWindow,否則,執行系統的返回事件。 程式碼示例 @Override public void onResume() { super.onResu

android 在fragment中如何返回,home

在activity中用keydown很容易實現對返回鍵的監聽,但是這個函式不能再fragment中過載。  通過我嘔心瀝血的尋找,終於找到了解決辦法,對其他物理按鍵的監聽也同理。  Java程式碼   public class phonerecorder exten

android設定軟鍵盤搜尋以及搜尋點選時發生兩次事件的問題解決

在輸入框中加入android:imeOptions="actionSearch",呼叫軟鍵盤時,回車鍵就會顯示搜尋二字。 我想在點選搜尋時,跳轉到下一個頁面,但是呼叫setOnKeyListener,每次都執行兩次。最後上網看到別人的文章,解決了問題,解決方法是呼叫se

Android完美解決home

以下兩種方法可以完美解決監聽back鍵,home鍵,多工鍵(最近任務鍵)。 一、使用註冊廣播監聽home鍵、多工鍵 演示圖 建立一個廣播程式碼如下: class InnerRecevier extends BroadcastRec

Android開發 之 返回,彈出一個退出對話方塊

Android 如何監聽返回鍵點選事件,並建立一個退出對話方塊,防止自己寫的應用程式不小心點選退出鍵而直接退出。 自己記錄下這個簡單的demo,備用。 注:如下程式碼當時是從網上copy過來的,現在忘了它出自哪個原作者了,在此說聲抱歉。 原始碼如下: public

Unity3D與Android專案互動中無法back返回的解決辦法

 這兩天為解決unity3d與android專案整合中出現的無法監聽真機back實體鍵的問題找了很多資料,網上也有很多人遇到了這個問題,但是似乎都沒找到有效的解決方法。    實現的效果是從A_Activity跳轉到UnityPlayerNativeActi

手機影音第十天,控制屏幕上下滑動改變音量變化,物理改變音量

滑動屏幕改變音量大小 物理鍵的增大、減小改變音量與seekbar的進度條 代碼已托管至碼雲上,有興趣的小夥伴可以下載看看,IDE是Android studio 2.3.2 https://git.oschina.net/joy_yuan/MobilePlayer 常

Android APP進入後臺或切換到前臺方案對比

api 5.0 等等 推薦一個 情況 lis 需要 推出 soc 在我們開發的過程中,經常會遇到需要我們判斷app進入後臺,或者切換到前臺的情況。比如我們想判斷app切換到前臺時,顯示一個解鎖界面,要求用戶輸入解鎖密碼才能繼續進行操作;我們想判斷app切換到後臺,記錄一下l