怎么可以获取SCREEN_OFF这个广播呢?
可以把相关的测试代码发出来看看。
zhansb 发表于 2015-4-27 10:28
可以把相关的测试代码发出来看看。
public void onCreate() {
// 屏蔽系统的屏保
KeyguardManager manager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock lock = manager
.newKeyguardLock("KeyguardLock");
lock.disableKeyguard();
// 注册一个监听屏幕开启和关闭的广播
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(screenReceiver, filter);
}
BroadcastReceiver screenReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_SCREEN_ON)) {
// 屏幕显示
} else if (action.equals(Intent.ACTION_SCREEN_OFF)) {// 接受到关闭屏幕的广播
// 开启屏幕唤醒,常亮
PowerManagerWakeLock.acquire(ScreenSaverS.this);
PowerManagerWakeLock.acquire(ScreenSaverS.this);
PowerManagerWakeLock.release();
}
}
};
你在广播里面添加打印看下,代码应该是OK的~
lynn3653 发表于 2015-4-27 11:49
你在广播里面添加打印看下,代码应该是OK的~
已经试过了,RK3288没有接收到这个广播,手机上正常的,应该是系统内部关掉这个广播了吧
wxm396201647 发表于 2015-4-27 12:11
已经试过了,RK3288没有接收到这个广播,手机上正常的,应该是系统内部关掉这个广播了吧
不会是系统内部关闭的。你的固件是TVBOX还是MID版的?你是加了具体的log,还是根据常亮是否设置成功,来判断广播是否接收到
复制你的代码测试了下,正常。。。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
// 屏蔽系统的屏保
/*
KeyguardManager manager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock lock = manager
.newKeyguardLock("KeyguardLock");
lock.disableKeyguard();
*/
// 注册一个监听屏幕开启和关闭的广播
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(screenReceiver, filter);
}
BroadcastReceiver screenReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_SCREEN_ON)) {
// 屏幕显示
Log.i("test", "ACTION_SCREEN_ON----->");
} else if (action.equals(Intent.ACTION_SCREEN_OFF)) {// 接受到关闭屏幕的广播
// 开启屏幕唤醒,常亮
// PowerManagerWakeLock.acquire(ScreenSaverS.this);
//PowerManagerWakeLock.acquire(ScreenSaverS.this);
//PowerManagerWakeLock.release();
Log.i("test", "ACTION_SCREEN_OFF----->");
}
}
};
carlinluo 发表于 2015-4-27 15:47
复制你的代码测试了下,正常。。。
请问是在RK3288主板上测试的么?我重新测试了,还是接收不到
风之空响 发表于 2015-4-27 15:31
不会是系统内部关闭的。你的固件是TVBOX还是MID版的?你是加了具体的log,还是根据常亮是否设置成功,来判 …
固件不清楚是哪个,加的事具体的log,但是没有输出
wxm396201647 发表于 2015-4-28 09:58
固件不清楚是哪个,加的事具体的log,但是没有输出
贴一下你机器 设置-》关于里面的截图,我看下什么版本的,我这边测试下先
wxm396201647 发表于 2015-4-29 13:21
好的,麻烦你啦
我测试还是正常,你按装下我的apk试下,代码和你相同。打开应用,logcat -s TestScreen ,点击电源键关闭唤醒屏幕,看下Log输出
TestScreen.apk (274 KB)
