android 如何屏蔽接收来自某些信道的小区广播消息

客户发现4370~4382的小区广播信道被打开了,想屏蔽这些信道的小区广播消息,可以参考如下设置:

1. 在SmsCbConstants.java(alps/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm) 中添加宏:

public static final int MESSAGE_ID_CBDD_IDENTIFIER_MIN = 0x1112; // add by mtk for 4370

public static final int MESSAGE_ID_CBDD_IDENTIFIER_MAX = 0x111E; // add by mtk for 4382

2. 在 SmsCbHeader.java(alps/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm)中添加个判断:

public SmsCbHeader(byte[] pdu, boolean isEtwsPrimary) throws IllegalArgumentException{

……

mMessageIdentifier = ((pdu[2] & 0xff)<<8)| (pdu[3] & 0xff);

// add by mtk for 4370 ~ 4382

if(mMessageIdentifier >= SmsCbConstants.MESSAGE_ID_CBDD_IDENTIFIER_MIN && mMessageIdentifier <= SmsCbConstants.MESSAGE_ID_CBDD_IDENTIFIER_MAX )

{

return ;

}

// add by mtk for 4370 ~ 4382

}

3. 在GsmCellBroadcastHandler.java 中对handleGsmBroadcastSms() 方法做如下修改:

private SmsCbMessage handleGsmBroadcastSms(AsyncResult ar) {

……

SmsCbHeader header = new SmsCbHeader(receivedPdu, false);

// add by mtk for 4370 ~ 4382

if(header.getServiceCategory() >= SmsCbConstants.MESSAGE_ID_CBDD_IDENTIFIER_MIN && header.getServiceCategory() <= SmsCbConstants.MESSAGE_ID_CBDD_IDENTIFIER_MAX)

{

return ;

}

// add by mtk for 4370 ~ 4382

……

}

注意:上述做法只是不接收这些信道的广播消息,但是4370~4382信道仍然是打开的。如果需要关闭这些信道,可以参考第5步。

4、如果是客户预置的信道,请检查NVRAM_EF_CB_DEFAULT_CH_LID和NVRAM_EF_CB_CH_INFO_LID中并去掉。如果是非客户预置的信道,那就是SIM卡中预置的。可以申请打开宏__CB_CHANNEL_ONLY_STORED_IN_NVRAM__,使手机启动时,不去读取SIM卡中保存的信道。这样,这些信道就不会打开了。

目前没有提供支持单独关闭某些广播信道的AT命令。

时间: 2024-10-29 02:01:20

android 如何屏蔽接收来自某些信道的小区广播消息的相关文章

android蓝牙(二)——接收数据

在蓝牙开发中,我们有这样的一个需求:我们的android客户端要始终保持和蓝牙的连接,当蓝牙有数据返回的时候,android客户端就要及时的收取数据,当蓝牙没有数据返回的时候我们就要保持android客户端和蓝牙之间的连接.这个时候我们就要采取socket来实现和蓝牙之间的连接.做项目使用过http轮询去获取数据,但是发现那样总是有一定的弊端.于是就才用了socket方式去获取数据. 实现步骤:1.启动一个service去监听是否有数据返回.一旦有数据返回就启动一个线程去处理数据 2.处理完数据

Android中屏蔽&quot;电源键长按&quot;、&quot;Home键&quot;、&quot;Home键长按&quot;

Android中屏蔽"电源键长按"."Home键"."Home键长按"    这几个"按钮"的触发,都会产生一个Action == Intent.ACTION_CLOSE_SYSTEM_DIALOGS的通知    区分他们三个的不同事件的参数,就是随着Intent带过来的reason字符串,分别对应    "电源键长按"(globalscreen)."Home键"(homekey).&q

android开发 socket接收图片并保存

逻辑:接收到socket之后需要将socket发送的图片数据保存下来并通知handler更新界面 关键代码: public void readImage(Socket socket) { try { InputStream in = socket.getInputStream(); BufferedInputStream bis = new BufferedInputStream(in); Bitmap bitmap = BitmapFactory.decodeStream(bis);//这个好

android使用wcf接收上传图片视频文件

一.Android 权限配置文件: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.niewei.updatefile" android:versionCode="1" android:versio

Android开发之接收系统广播消息

BroadcastReceiver除了接收用户所发送的广播消息之外,还有一个重要的用途:接收系统广播.如果应用需要在系统特定时刻执行某些操作,就可以通过监听系统广播来实现.Android的大量系统事件都会对外发送标准广播.以下是Android常见的广播Action常量(详请参考Android API文档中关于Intent的说明). Action常量 说明 ACTION_TIME_CHANGED 系统时间被改变. ACTION_DATE_CHANGED 系统日期被改变. ACTION_TIMEZO

android菜鸟学习笔记26----Android广播消息及BroadcastReceiver

1.广播类型: Android中的广播有两种类型:标准广播和有序广播.其中,标准广播是完全异步发送的广播,发出之后,几乎所有的广播接收者都会在同一时刻收到这条广播消息,因而,这种类型的广播消息是不可拦截,不可修改的:而有序广播是一种同步发送的广播,广播发出后,只有优先级最高的广播接收者能够收到这条广播消息,它处理完自己的逻辑之后,广播才会向后继续传递给低优先级的广播接收者,因此,高优先级的广播接收者可以对广播消息进行拦截,修改操作. 2.接收系统广播: 要接收系统广播,就要有自己的广播接收者.定

Android中Intent详解(二)之使用Intent广播事件及Broadcast Receiver简介

通过第一篇的讲解,我们已经看到了如何使用Intent来启动新的应用程序组件,但是实际上他们也可以使用sendBroadcast方法来在组件间匿名的广播消息. 作为一个系统级别的消息传递机制,Intent可以在进程之间发送结构化的消息.因此,通过实现Broadcast Receiver来监听和响应应用程序内的这些Broadcast Intent. 通过使用Intent来广播一个事件,可以在不修改原始的应用程序的情况下,让我们开发人员对事件做出反应.Android大量使用了Broadcast Rec

Android中Intent具体解释(二)之使用Intent广播事件及Broadcast Receiver简单介绍

通过第一篇的解说,我们已经看到了怎样使用Intent来启动新的应用程序组件,可是实际上他们也能够使用sendBroadcast方法来在组件间匿名的广播消息. 作为一个系统级别的消息传递机制,Intent能够在进程之间发送结构化的消息. 因此,通过实现Broadcast Receiver来监听和响应应用程序内的这些Broadcast Intent. 通过使用Intent来广播一个事件,能够在不改动原始的应用程序的情况下.让我们开发者对事件做出反应.Android大量使用了Broadcast Rec

Android系统源码阅读(13):Input消息的分发过程

Android系统源码阅读(13):Input消息的分发过程 请对照AOSP版本:6.0.1_r50.学校电脑好渣,看源码时卡半天 先回顾一下前两篇文章.在设备没有事件输入的时候,InputReader和InputDispatcher都处于睡眠状态.当输入事件发生,InputReader首先被激活,然后发送读取消息,激活Dispatcher.Dispatcher被激活以后,将消息发送给当前激活窗口的主线程,然后睡眠等待主线程处理完这个事件.主线程被激活后,会处理相应的消息,处理完毕后反馈给Dis