Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

RK3288 无法监听系统屏幕关闭广播

21

积分

0

威望

0

贡献

游客

积分
21

RK3288 无法监听系统屏幕关闭广播

发表于 2015-4-27 10:11:57      浏览:17396 | 回复:11        打印      只看该作者   [复制链接] 楼主
怎么可以获取SCREEN_OFF这个广播呢?
回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2015-4-27 10:28:06        只看该作者  沙发
可以把相关的测试代码发出来看看。
回复

使用道具 举报

21

积分

0

威望

0

贡献

游客

积分
21
发表于 2015-4-27 10:30:04        只看该作者  板凳
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.         };
复制代码
回复

使用道具 举报

19

积分

0

威望

0

贡献

注册会员

Rank: 8Rank: 8

积分
19
发表于 2015-4-27 11:49:00        只看该作者  地板
你在广播里面添加打印看下,代码应该是OK的~
回复

使用道具 举报

21

积分

0

威望

0

贡献

游客

积分
21
发表于 2015-4-27 12:11:02        只看该作者  5#
lynn3653 发表于 2015-4-27 11:49
你在广播里面添加打印看下,代码应该是OK的~

已经试过了,RK3288没有接收到这个广播,手机上正常的,应该是系统内部关掉这个广播了吧
回复

使用道具 举报

742

积分

68

威望

68

贡献

技术大神

Rank: 3Rank: 3

积分
742
QQ
发表于 2015-4-27 15:31:31        只看该作者  6#
wxm396201647 发表于 2015-4-27 12:11
已经试过了,RK3288没有接收到这个广播,手机上正常的,应该是系统内部关掉这个广播了吧

不会是系统内部关闭的。你的固件是TVBOX还是MID版的?你是加了具体的log,还是根据常亮是否设置成功,来判断广播是否接收到
回复

使用道具 举报

265

积分

5

威望

6

贡献

实习版主

Rank: 7Rank: 7Rank: 7

积分
265

活跃会员热心会员突出贡献

发表于 2015-4-27 15:47:50        只看该作者  7#
复制你的代码测试了下,正常。。。
  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.        };
复制代码
回复

使用道具 举报

21

积分

0

威望

0

贡献

游客

积分
21
发表于 2015-4-28 09:57:43        只看该作者  8#
carlinluo 发表于 2015-4-27 15:47
复制你的代码测试了下,正常。。。

请问是在RK3288主板上测试的么?我重新测试了,还是接收不到
回复

使用道具 举报

21

积分

0

威望

0

贡献

游客

积分
21
发表于 2015-4-28 09:58:23        只看该作者  9#
风之空响 发表于 2015-4-27 15:31
不会是系统内部关闭的。你的固件是TVBOX还是MID版的?你是加了具体的log,还是根据常亮是否设置成功,来判 ...

固件不清楚是哪个,加的事具体的log,但是没有输出
回复

使用道具 举报

742

积分

68

威望

68

贡献

技术大神

Rank: 3Rank: 3

积分
742
QQ
发表于 2015-4-29 09:19:35        只看该作者  10#
wxm396201647 发表于 2015-4-28 09:58
固件不清楚是哪个,加的事具体的log,但是没有输出

贴一下你机器 设置-》关于里面的截图,我看下什么版本的,我这边测试下先
回复

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表