rk3288 添加系统广播
可在自己需要的位置注册接受广播的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 添加系统广播相关推荐
- RK3288 添加USB转虚拟串口设备
在系统开启并有日志打印的前提下,插入USB设备,就会打印USB设备和虚拟串口信息. 打印信息如下: 供应商ID(VID):idVendor=1234,产品ID(PID): idProduct=5678 ...
- RK3288 添加backlight lcd接口
一.首先,设置背光: (1)添加设备树节点: compatible:驱动匹配名称: pwm:<pwm选择 通道选择 频率>; brightness-levels:背光调节等级: defau ...
- Android广播(笔记)
在Android程序中使用广播,有两种注册广播接收器的方式,区别如下: 第一种方式:在AndroidManifest.xml文件中注册 <receiver android:name=" ...
- RK3288下添加PCF8563 RTC支持
SOC:RK3288 kernel:Linux4.4 1. 添加驱动支持 Device Drivers ---> [*] Real Time Clock ---> [*] Set ...
- 2020-12-26 RK3288 MAC SN等厂商信息保存以及如何添加一个新的ID
RK3288 MAC SN等厂商信息保存以及如何添加一个新的ID 一.MAC SN等厂商信息是保存在vendor storage区域,uboot, kernel, linux用户空间以及pc端都可以访 ...
- 基于RK3288 平台 Simple card声卡添加及调试
基于RK3288 平台 Simple card声卡添加及调试 Simple card即简单通用的machine driver, 如果simple-card框架足够满足需求,建议优先使用simp ...
- 解压RK3288的boot.img修改init.rc 添加开机自启动脚本
最近找别人开发一款智能AI机器人,由于方案厂商现在代码还没有交付.每次只提供ROM.现在公司要求要开机启动系统检测脚本.我们都知道Android现在权限管理很严格.而且我的脚本是用shell脚本完成的 ...
- RK3288 android添加HAL 层导致无法进入主界面原因分析,重复打印 camsys_marvin(deaa1510) is closed
1.一般在添加HAL层的时候,都会写到JNI 层(namespace android) ,如果形参对应不上,或者JNINativeMethod格式写的 不对就会导致开机无法进入主界面,以下是终端重复 ...
- [RK3288][Android6.0] 调试笔记 --- WiFi芯片AP6356S添加
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 背景: RK3288 Android6.0平台对AP6356S的支持不是很完善,直接修改wifi ch ...
最新文章
- 怎么判断前轮左右的位置_汽车上主要传感器的安装位置,你知道多少?
- 美链BEC合约漏洞技术分析 1
- Moodle: 查询 / 更新 / 添加 / 删除 / 导出 用户 ($DB用法)
- 线性插值改变图像尺寸_【图像分割模型】实例分割模型—DeepMask
- AJPFX总结String类的特点
- Kotlin入门(29)任务Runnable
- sun.misc.BASE64Encoder找不到的解决方法
- python新式类中的__new__方法与__init__方法
- zabbix mysql模板_[原创]通过zabbix 使用改良自带模板Template App MySQL监控服务器上的mysql...
- 莫烦 Python 基础
- 矩阵相关定义性质全总结
- 面试题:用两个队列实现一个栈
- t.cn短链接是怎么生成的?
- Qt中qmake的INSTALLS变量将编译文件拷到运行目录
- linux关闭云锁服务器,安全软件之linux系统下云锁简单的安装方法
- 计算机专业毕业文案,毕业微信朋友圈说说 2020毕业文案经典个性
- 真无线蓝牙耳机哪家的音质最好?四款音质好蓝牙耳机
- rk3288 android 6.0固件,RK3288固件升级教程
- 笔记本电脑无法连接无线网问题
- 基于最大熵Maxent-ArcGis地理分布预测教程
热门文章
- python数据可视化(matplotlib,seaborn,plotly)
- android 设置EditText可输入和不可输入状态
- Matplotlib的imshow()坐标刻度调整及热图对比的注意事项
- 什么是 相关子查询 和 非相关子查询 ?
- php 时间转时辰,Powershell小技巧之获取当前的时间并转换为时辰
- 和菜头:放开那些员工
- 解封了 开始寻找牛人
- python中如何引入π_python如何计算π
- wps自动图文集 重新编号_如何在Word中创建和使用自动图文集词条
- python -- 字符串练习题