Firefly开源社区

标题: RK3288 无法监听系统屏幕关闭广播 [打印本页]

作者: wxm396201647    时间: 2015-4-27 10:11
标题: RK3288 无法监听系统屏幕关闭广播
怎么可以获取SCREEN_OFF这个广播呢?
作者: zhansb    时间: 2015-4-27 10:28
可以把相关的测试代码发出来看看。
作者: wxm396201647    时间: 2015-4-27 10:30
zhansb 发表于 2015-4-27 10:28
可以把相关的测试代码发出来看看。
  1. public void onCreate() {
  2.                 // 屏蔽系统的屏保
  3.                 KeyguardManager manager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
  4.                 KeyguardManager.KeyguardLock lock = manager
  5.                                 .newKeyguardLock("KeyguardLock");
  6.                 lock.disableKeyguard();

  7.                 // 注册一个监听屏幕开启和关闭的广播
  8.                 IntentFilter filter = new IntentFilter();
  9.                 filter.addAction(Intent.ACTION_SCREEN_ON);
  10.                 filter.addAction(Intent.ACTION_SCREEN_OFF);
  11.                 registerReceiver(screenReceiver, filter);
  12.         }

  13.         BroadcastReceiver screenReceiver = new BroadcastReceiver() {

  14.                 @Override
  15.                 public void onReceive(Context context, Intent intent) {
  16.                         String action = intent.getAction();
  17.                         if (action.equals(Intent.ACTION_SCREEN_ON)) {
  18.                                 // 屏幕显示
  19.                         } else if (action.equals(Intent.ACTION_SCREEN_OFF)) {// 接受到关闭屏幕的广播
  20.                                 // 开启屏幕唤醒,常亮
  21.                                 PowerManagerWakeLock.acquire(ScreenSaverS.this);
  22.                                 PowerManagerWakeLock.acquire(ScreenSaverS.this);
  23.                                 PowerManagerWakeLock.release();
  24.                         }
  25.                 }
  26.         };
复制代码

作者: lynn3653    时间: 2015-4-27 11:49
你在广播里面添加打印看下,代码应该是OK的~
作者: wxm396201647    时间: 2015-4-27 12:11
lynn3653 发表于 2015-4-27 11:49
你在广播里面添加打印看下,代码应该是OK的~

已经试过了,RK3288没有接收到这个广播,手机上正常的,应该是系统内部关掉这个广播了吧
作者: 风之空响    时间: 2015-4-27 15:31
wxm396201647 发表于 2015-4-27 12:11
已经试过了,RK3288没有接收到这个广播,手机上正常的,应该是系统内部关掉这个广播了吧

不会是系统内部关闭的。你的固件是TVBOX还是MID版的?你是加了具体的log,还是根据常亮是否设置成功,来判断广播是否接收到
作者: carlinluo    时间: 2015-4-27 15:47
复制你的代码测试了下,正常。。。
  1.     protected void onCreate(Bundle savedInstanceState) {
  2.         super.onCreate(savedInstanceState);
  3.         //setContentView(R.layout.activity_main);
  4.      // 屏蔽系统的屏保
  5. /*
  6.                        KeyguardManager manager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);

  7.                         KeyguardManager.KeyguardLock lock = manager

  8.                                         .newKeyguardLock("KeyguardLock");

  9.                        lock.disableKeyguard();
  10. */
  11.         

  12.                       // 注册一个监听屏幕开启和关闭的广播

  13.          IntentFilter filter = new IntentFilter();

  14.          filter.addAction(Intent.ACTION_SCREEN_ON);

  15.          filter.addAction(Intent.ACTION_SCREEN_OFF);

  16.          registerReceiver(screenReceiver, filter);




  17.     }

  18.     BroadcastReceiver screenReceiver = new BroadcastReceiver() {

  19.            

  20.                 @Override

  21.                 public void onReceive(Context context, Intent intent) {

  22.                                   String action = intent.getAction();

  23.                                   if (action.equals(Intent.ACTION_SCREEN_ON)) {

  24.                                            // 屏幕显示
  25.                                                           Log.i("test", "ACTION_SCREEN_ON----->");

  26.                                     } else if (action.equals(Intent.ACTION_SCREEN_OFF)) {// 接受到关闭屏幕的广播

  27.                                            // 开启屏幕唤醒,常亮

  28.                                      // PowerManagerWakeLock.acquire(ScreenSaverS.this);

  29.                                       //PowerManagerWakeLock.acquire(ScreenSaverS.this);

  30.                                   //PowerManagerWakeLock.release();
  31.                                             Log.i("test", "ACTION_SCREEN_OFF----->");


  32.                       }

  33.                     }

  34.        };
复制代码

作者: wxm396201647    时间: 2015-4-28 09:57
carlinluo 发表于 2015-4-27 15:47
复制你的代码测试了下,正常。。。

请问是在RK3288主板上测试的么?我重新测试了,还是接收不到
作者: wxm396201647    时间: 2015-4-28 09:58
风之空响 发表于 2015-4-27 15:31
不会是系统内部关闭的。你的固件是TVBOX还是MID版的?你是加了具体的log,还是根据常亮是否设置成功,来判 ...

固件不清楚是哪个,加的事具体的log,但是没有输出
作者: 风之空响    时间: 2015-4-29 09:19
wxm396201647 发表于 2015-4-28 09:58
固件不清楚是哪个,加的事具体的log,但是没有输出

贴一下你机器 设置-》关于里面的截图,我看下什么版本的,我这边测试下先
作者: wxm396201647    时间: 2015-4-29 13:21
好的,麻烦你啦 :)

device-2015-04-29-131933.png (121.75 KB, 下载次数: 639)

device-2015-04-29-131933.png

作者: 风之空响    时间: 2015-4-29 15:34
wxm396201647 发表于 2015-4-29 13:21
好的,麻烦你啦

我测试还是正常,你按装下我的apk试下,代码和你相同。打开应用,logcat -s TestScreen ,点击电源键关闭唤醒屏幕,看下Log输出

TestScreen.apk (273.61 KB, 下载次数: 4)






欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1