powermanager

Android 关于休眠的几个坑点

我是研究僧i 提交于 2019-12-07 09:12:13
首先看一下Android Powermanager Class Overview,对Android的几种不同的休眠模式有个大致了解。 如果不进行特别的设置,Android会在一定时间后屏幕变暗,在屏幕变暗后一定时间内,约几分钟,CPU也会休眠,大多数的程序都会停止运行,从而节省电量。但你可以在代码中通过对Powmanager API的调用来设置不同的休眠模式。 Flag Value CPU Screen Keyboard PARTIAL_WAKE_LOCK On* Off Off SCREEN_DIM_WAKE_LOCK On Dim Off SCREEN_BRIGHT_WAKE_LOCK On Bright Off FULL_WAKE_LOCK On Bright Bright 如上表,最高等级的休眠是屏幕,键盘等,cpu都全部休眠。可以设置不同的模式,让其产生不同的休眠,比如让cpu保持运行。 设置代码如下: PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); wl.acquire(); ..screen

How to bring application from background to foreground via BroadcastReceiver

空扰寡人 提交于 2019-12-06 08:35:46
I have two classes which are MainActivity and MyBroadcastReceiver. BroadcastReceiver detects whether phone screen is on or off. My desire is to launch my application whenever screen lock is released. I mean that I want to bring my application to the front when phone lock releases. Here is my activity class: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); registerReceiver(); } private void registerReceiver(){ IntentFilter filter = new IntentFilter(Intent.ACTION

利用dbus-send在命令行下给程序发送消息,调用其相应的函数

邮差的信 提交于 2019-12-06 08:08:43
引自maemo diab教程 p189-195 通过Dbus命令行的方法,可以调用程序中的某一个函数: 如下: run-standalone.sh dbus-send --print-reply / --type=method_call --dest=com.nokia.hello_world_app / /com/nokia/hello_world_app com.nokia.hello_world_app.hello_world_dialog_show 这句话的意思是: 调用服务名字(/usr/share/dbus-1/service/里面相应的service文件):com.nokia.hello_world_app 调用的服务名字下面的一个对象为:/com/nokia/hello_world_app 调用该对象接口(com.nokia.hello_world_app)下面的一个函数(hello_world_dialog_show),这个函数没有参数,在源代码里面可以看到这个函数的定义。如果有参数的话,如下类似的调用: run-standalone.sh dbus-send --print-reply / --type=method_call --dest=org.freedesktop.Notifications / /org/freedesktop

WakeLock保持后台唤醒状态

折月煮酒 提交于 2019-12-05 02:37:22
官方对于WakeLock的解释: PowerManager:This class gives you control of the power state of the device. PowerManager.WakeLock: lets you say that you need to have the device on. Android 系统支持应用程序及服务在待机前保存程序运行状态,如待机前关闭文件读写、usb 操作、暂停音乐播放;也支持唤醒后的程序状态恢复,如恢复打开文件进行读写操作,恢复 usb 操作、恢复音乐播放等。这些状态的保存和恢复功能可以保证系统在待机唤醒后能正常工作。 主要提供两种方式: 1、待机广播消息和唤醒广播消息。 2、Wakelock 锁机制。 分为两个部分说明一下: 1、android 系统待机处理机制 待机广播消息和唤醒广播消息 系统在 PowerManagerService 类中注册了 2 个广播分别用于待机前和唤醒后发送。 void initInThread(){ //唤醒后: mScreenOnIntent=newIntent(Intent.ACTION_SCREEN_ON);//唤醒后发送 mScreenOnIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); //待机前:

Android应用程序 --- WakeLock 保持后台唤醒状态

纵饮孤独 提交于 2019-12-04 16:09:31
一些手机app(如微信、QQ等)有新消息来到达,手机屏幕即使在锁屏状态下也会亮起,并提示用户有新消息。但是,一般情况下手机锁屏后,Android系统为了省电以及减少CPU消耗,在一段时间后会使系统进入休眠状态,这时,Android系统中CPU会保持在一个相对较低的功耗状态,而收到新消息必定有网络请求,而网络请求是消耗CPU的操作,那么如何在锁屏状态乃至系统进入休眠后,仍然保持系统的网络状态以及通过程序唤醒手机呢?答案就是Android中的WakeLock机制。 官方对于WakeLock的解释: PowerManager:This class gives you control of the power state of the device. PowerManager.WakeLock: lets you say that you need to have the device on. Android 系统支持应用程序及服务在待机前保存程序运行状态,如待机前关闭文件读写、usb 操作、暂停音乐播放;也支持唤醒后的程序状态恢复,如恢复打开文件进行读写操作,恢复 usb 操作、恢复音乐播放等。这些状态的保存和恢复功能可以保证系统在待机唤醒后能正常工作。 主要提供两种方式: 1、待机广播消息和唤醒广播消息。 2、Wakelock 锁机制。 分为两个部分说明一下: 1、android

使用WakeLock使Android应用程序保持后台唤醒

倾然丶 夕夏残阳落幕 提交于 2019-12-04 01:15:57
在使用一些产品列如微信、QQ之类的,如果有新消息来时,手机屏幕即使在锁屏状态下也会亮起并提示声音,这时用户就知道有新消息来临了。但是,一般情况下手机锁屏后,Android系统为了省电以及减少CPU消耗,在一段时间后会使系统进入休眠状态,这时,Android系统中CPU会保持在一个相对较低的功耗状态。针对前面的例子,收到新消息必定有网络请求,而网络请求是消耗CPU的操作,那么如何在锁屏状态乃至系统进入休眠后,仍然保持系统的网络状态以及通过程序唤醒手机呢?答案就是Android中的WakeLock机制。 首先看看官方的解释: PowerManager :This class gives you control of the power state of the device. PowerManager.WakeLock : lets you say that you need to have the device on. PowerManager负责对Android设备电源相关进行管理,而系统通过各种锁对电源进行控制,WakeLock是一种锁机制,只要有人拿着这把所,系统就无法进入休眠阶段。既然要保持应用程序一直在后台运行,那自然要获得这把锁才可以保证程序始终在后台运行。之前我做过一个需求是要在后台跑一个Service执行轮询,但发现一段时间以后,轮询就中断了

WakefulBroadcastReceiver is deprecated

时间秒杀一切 提交于 2019-12-03 11:22:14
问题 For creating a receiver I'm extended WakefulBroadcastReceiver in my old project. But now it's deprecated . Instead of WakefulBroadcastReceiver which Receiver I should use now and how to convert below code with new method? Here is my code: public class TaskFinishReceiver extends WakefulBroadcastReceiver { private PowerManager mPowerManager; private PowerManager.WakeLock mWakeLock; @Override public void onReceive(Context context, Intent intent) { mPowerManager = (PowerManager) context

WakefulBroadcastReceiver is deprecated

℡╲_俬逩灬. 提交于 2019-12-03 01:54:36
For creating a receiver I'm extended WakefulBroadcastReceiver in my old project. But now it's deprecated . Instead of WakefulBroadcastReceiver which Receiver I should use now and how to convert below code with new method? Here is my code: public class TaskFinishReceiver extends WakefulBroadcastReceiver { private PowerManager mPowerManager; private PowerManager.WakeLock mWakeLock; @Override public void onReceive(Context context, Intent intent) { mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); turnOnScreen(); Intent wakeIntent = new Intent(); wakeIntent

Power-Off or Restart an android device via Code/Program?

匿名 (未验证) 提交于 2019-12-03 01:31:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Is there any way to restart/shutdown a phone directly from an application? For Example: I need to restart/shutdown my Phone when i meet some specific condition... Citations to Developer Website: Permission to Reboot? http://developer.android.com/reference/android/Manifest.permission.html#REBOOT Permission to Brick the device??? http://developer.android.com/reference/android/Manifest.permission.html#BRICK Method to reboot??? http://developer.android.com/reference/android/os/PowerManager.html#reboot%28java.lang.String%29 Method to reboot and

电话监听与屏幕锁屏监听测试android7.0和android8.0通过

匿名 (未验证) 提交于 2019-12-03 00:18:01
android 8.0中将静态广播删除了,不再生效,改用动态注册广播方式,电话监听方式 //权限: <uses-permission android:name= "android.permission.PROCESS_OUTGOING_CALLS" /> <uses-permission android:name= "android.permission.READ_PHONE_STATE" /> //android.permission.READ_PHONE_STATE权限需要申请用户通过。 /** * @author xuyan QQ:1213236113 * @name eng100 * @class name:com.wanhe.eng100.listening.pro.common * @class describe * @time 2018/5/22 12:33 */ public class PhoneReceiver extends BroadcastReceiver { private OnPhoneListener onPhoneListener; public PhoneReceiver () { } public PhoneReceiver (OnPhoneListener onPhoneListener) { this .onPhoneListener =