zoukankan      html  css  js  c++  java
  • android 接受系统锁屏广播,及高版本发送广播

    protected BroadcastReceiver messageReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                if (action.equals(MusicConstant.MEDIA_EXECUTE_CMD)) {
                    int cmd = Integer.parseInt(intent.getStringExtra("cmd"));
                    switch (cmd) {
                        case 1:
                            if (PCount % 2 == 0) {
                                screenOff();
                            } else {
                                screenOn();
                            }
                            PCount++;
                            break;
                        case MusicConstant.cmd.VKEYCODE_MUTE:
                            // mute();
                            break;
                        case MusicConstant.cmd.VKEYCODE_UP://up
    
                            //  volumeUp();
                            break;
                        case MusicConstant.cmd.VKEYCODE_DOWN://down
    
                            // volumeDown();
                            break;
                        case MusicConstant.cmd.VKEYCODE_EXIT:
                            //finish();
                            break;
                        default:
                            break;
    
                    }
    
                }else if(action.equals(MusicConstant.SET_VOLUME_ACTION)){
                    app.baseOnKeyFlag = false;
                  baseClickTime = System.currentTimeMillis();
                    int oldVol = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
                    setVolume(intent.getIntExtra("volume",oldVol));
                    showBaseVolumeWindow();
                }else if(action.equals(Intent.ACTION_SCREEN_ON)){
                    stopTimer();
                }else if(action.equals(Intent.ACTION_SCREEN_OFF)){
                    startTimer();
                }
            }
        };
    
        private void initFilter() {
            IntentFilter filter = new IntentFilter();
            filter.addAction(MusicConstant.MEDIA_EXECUTE_CMD);
            filter.addAction(MusicConstant.SET_VOLUME_ACTION);
            filter.addAction(Intent.ACTION_SCREEN_ON);
            filter.addAction(Intent.ACTION_SCREEN_OFF);
            registerReceiver(messageReceiver, filter);
        }

    1.高版本,用户发送自定义广播,接收不到信息

    Intent intent = new Intent();
    intent.setAction("demo.destroy");
    intent.setComponent( new ComponentName( "luoy.com.servicebackstage" ,
            "luoy.com.servicebackstage.MyReceiver") );
    sendBroadcast(intent);

    setComponent的两个参数,第一个是包名,第二个是Receive的路径

    2.系统广播接收不到

    一些特殊的广播,必须动态注册,静态注册是不起效果的

    类似,屏幕的锁屏和开屏

    IntentFilter recevierFilter=new IntentFilter();
    recevierFilter.addAction(Intent.ACTION_SCREEN_ON);
    recevierFilter.addAction(Intent.ACTION_SCREEN_OFF);
    MyReceiver receiver=new MyReceiver();
    registerReceiver(receiver, recevierFilter);

    https://blog.csdn.net/qq_30711091/article/details/86657268
  • 相关阅读:
    delphi Int64Rec 应用实例
    PerformEraseBackground 擦除背景(ThemeServices)
    Delphi 的 Bit
    delphi 关于 "高位" 与 "低位"
    PByte和PChar的关系
    执行控制台程序并且获得它的输出结果
    Console下Pause效果的函数
    ByteType字符串中判断是否英文
    窗体包括标题作为一个位图复制到剪贴板
    inf 启动
  • 原文地址:https://www.cnblogs.com/pengmn/p/10416552.html
Copyright © 2011-2022 走看看