可在自己需要的位置注册接受广播的action,这边是注册在Intent上。

1.添加action字符串
修改位置

frameworks/base/core/java/android/content/Intent.java
+    /**
+    *@hide
+    * @hide必须要加
+    **/
+    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
+    public static final String ACTION_demo="android.intent.action.demo";

2.注册该广播
修改位置

frameworks/base/core/res/AndroidManifest.xml
+    <!-- for demo -->
+    <protected-broadcast android:name="android.intent.action.demo" />

在需要的地方发送广播

+                   Intent intent = new Intent(Intent.ACTION_demo);
+                    intent.putExtra("state",state);
+                    sendBroadcastToAll(intent);+    private void sendBroadcastToAll(Intent intent) {+        intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+        intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+        final long ident = Binder.clearCallingIdentity();
+        try {+            mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
+        } finally {+            Binder.restoreCallingIdentity(ident);
+        }
+    }

3.可在系统中写个接收的广播,此例中,添加一个服务,在服务中注册接收广播
新建服务:
在frameworks/base/packages/SystemUI/src/com/android/systemui/文件夹新建一个自己的目录,新建一个服务。
eg:frameworks/base/packages/SystemUI/src/com/android/systemui/test/TestService.java

+package com.android.systemui.test;
+
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.IBinder;
+import android.util.Log;
+
+
+public class TestService extends Service {+
+    private static final String TAG = "TestService";
+    private SwitchAppReceiver receiver;
+
+    @Override
+    public void onCreate() {+        super.onCreate();
+        Log.i(TAG,"TestService oncreate");
+    }
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {+       Log.i(TAG,"TestService onStartCommand");
+        registerReceiver();
+        return super.onStartCommand(intent, flags, startId);
+
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {+        return null;
+    }
+
+    @Override
+    public void onDestroy() {+       Log.i(TAG,"TestService onDestroy");
+        unRegistReceiver();
+        super.onDestroy();
+    }
+
+    private void registerReceiver() {+        receiver = new SwitchAppReceiver();
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(Intent.ACTION_TES_SWITCH_APP);
+        registerReceiver(receiver, filter);
+    }
+
+    private void unRegistReceiver() {+        try {+            this.unregisterReceiver(receiver);
+        } catch (Exception e) {+
+        }
+    }
+}

新建广播

eg:frameworks/base/packages/SystemUI/src/com/android/systemui/test/SwitchAppReceiver.java

+package com.android.systemui.test;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.util.Log;
+
+public class SwitchAppReceiver extends BroadcastReceiver {+
+    public static final String TAG = "swith_app";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {+       Log.i(TAG, "SwitchAppReceiver onReceive==");
+ //do something+    }
+
+}

4.在合适的地方开启服务

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.javapublic PhoneStatusBarPolicy(Context context, StatusBarIconController iconController) {/* start test switch app */Log.d("TestService","##################");Intent mIntent = new Intent(mContext,TesService.class); mContext.startService(mIntent);}

rk3288 添加系统广播相关推荐

  1. RK3288 添加USB转虚拟串口设备

    在系统开启并有日志打印的前提下,插入USB设备,就会打印USB设备和虚拟串口信息. 打印信息如下: 供应商ID(VID):idVendor=1234,产品ID(PID): idProduct=5678 ...

  2. RK3288 添加backlight lcd接口

    一.首先,设置背光: (1)添加设备树节点: compatible:驱动匹配名称: pwm:<pwm选择 通道选择 频率>; brightness-levels:背光调节等级: defau ...

  3. Android广播(笔记)

    在Android程序中使用广播,有两种注册广播接收器的方式,区别如下: 第一种方式:在AndroidManifest.xml文件中注册 <receiver android:name=" ...

  4. RK3288下添加PCF8563 RTC支持

    SOC:RK3288 kernel:Linux4.4 1.  添加驱动支持 Device Drivers  ---> [*] Real Time Clock  ---> [*]   Set ...

  5. 2020-12-26 RK3288 MAC SN等厂商信息保存以及如何添加一个新的ID

    RK3288 MAC SN等厂商信息保存以及如何添加一个新的ID 一.MAC SN等厂商信息是保存在vendor storage区域,uboot, kernel, linux用户空间以及pc端都可以访 ...

  6. 基于RK3288 平台 Simple card声卡添加及调试

        基于RK3288 平台 Simple card声卡添加及调试 Simple card即简单通用的machine driver, 如果simple-card框架足够满足需求,建议优先使用simp ...

  7. 解压RK3288的boot.img修改init.rc 添加开机自启动脚本

    最近找别人开发一款智能AI机器人,由于方案厂商现在代码还没有交付.每次只提供ROM.现在公司要求要开机启动系统检测脚本.我们都知道Android现在权限管理很严格.而且我的脚本是用shell脚本完成的 ...

  8. RK3288 android添加HAL 层导致无法进入主界面原因分析,重复打印 camsys_marvin(deaa1510) is closed

    1.一般在添加HAL层的时候,都会写到JNI 层(namespace android) ,如果形参对应不上,或者JNINativeMethod格式写的  不对就会导致开机无法进入主界面,以下是终端重复 ...

  9. [RK3288][Android6.0] 调试笔记 --- WiFi芯片AP6356S添加

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 背景: RK3288 Android6.0平台对AP6356S的支持不是很完善,直接修改wifi ch ...

最新文章

  1. 怎么判断前轮左右的位置_汽车上主要传感器的安装位置,你知道多少?
  2. 美链BEC合约漏洞技术分析 1
  3. Moodle: 查询 / 更新 / 添加 / 删除 / 导出 用户 ($DB用法)
  4. 线性插值改变图像尺寸_【图像分割模型】实例分割模型—DeepMask
  5. AJPFX总结String类的特点
  6. Kotlin入门(29)任务Runnable
  7. sun.misc.BASE64Encoder找不到的解决方法
  8. python新式类中的__new__方法与__init__方法
  9. zabbix mysql模板_[原创]通过zabbix 使用改良自带模板Template App MySQL监控服务器上的mysql...
  10. 莫烦 Python 基础
  11. 矩阵相关定义性质全总结
  12. 面试题:用两个队列实现一个栈
  13. t.cn短链接是怎么生成的?
  14. Qt中qmake的INSTALLS变量将编译文件拷到运行目录
  15. linux关闭云锁服务器,安全软件之linux系统下云锁简单的安装方法
  16. 计算机专业毕业文案,毕业微信朋友圈说说 2020毕业文案经典个性
  17. 真无线蓝牙耳机哪家的音质最好?四款音质好蓝牙耳机
  18. rk3288 android 6.0固件,RK3288固件升级教程
  19. 笔记本电脑无法连接无线网问题
  20. 基于最大熵Maxent-ArcGis地理分布预测教程

热门文章

  1. python数据可视化(matplotlib,seaborn,plotly)
  2. android 设置EditText可输入和不可输入状态
  3. Matplotlib的imshow()坐标刻度调整及热图对比的注意事项
  4. 什么是 相关子查询 和 非相关子查询 ?
  5. php 时间转时辰,Powershell小技巧之获取当前的时间并转换为时辰
  6. 和菜头:放开那些员工
  7. 解封了 开始寻找牛人
  8. python中如何引入π_python如何计算π
  9. wps自动图文集 重新编号_如何在Word中创建和使用自动图文集词条
  10. python -- 字符串练习题