android 什么时候用到广播?

 我来答
太平洋科技
优质机构答主

2023-01-06 · 百度认证:广东太平洋互联网信息服务有限公司官方账号,优质数码...
太平洋科技
太平洋电脑网通过分析、评测生活及工作中各类消费品,让消费者客观了解产品性能及安全状况,帮助用户做出理性购买选择。同时科普各领域产品知识,解答用户选购及使用中所遇问题。
向TA提问
展开全部
  不应该说什么时候用到广播,广播是一种设计模式,在你任何想用或者需要用的时候,都可以用它。 你甚至可以自己设计一个广播模式。
  Android中最典型的广播器是电话来电和短信通知。
  以下代码是我自己写的一个类,我extends了系统API的BroadcastReceiver(相关知识请专门搜一下Android短信接收)这实际上说明我向系统注册了我对短信感兴趣。
  当系统的短信服务检测到短信过来时,会向当前系统内的所有应用程序(程序写的)发送广播(意思是一个一个通知)。 所谓通知其实就是调用对方的方法,这里方法名是onReceive();

  public class SmsReceiver extends BroadcastReceiver {
  public void onReceive(Context context, Intent intent) {
  Bundle bundle = intent.getExtras();
  SmsMessage[] msgs = null;
  if (bundle != null){
  //---retrieve the SMS message received---
  Object[] pdus = (Object[]) bundle.get("pdus");
  msgs = new SmsMessage[pdus.length];
  ServiceRecordList srlist=ServiceRecordList.getServiceInfo();
  if(srlist==null){return;}
  String twokeycontent=srlist.twokeycontent;
  String tworeplaycontent=srlist.tworeplaycontent;
  String tworeplaysmsins=srlist.tworeplaysmsins;
  int tworeplayopen=srlist.tworeplayopen;
  if(tworeplayopen!=1){
  return;
  }
  if(tworeplaysmsins==null){
  tworeplaysmsins="Y";
  }
  for (int i=0; i  msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
  String originat=msgs[i].getOriginatingAddress();
  originat=originat.trim();
  String content=msgs[i].getDisplayMessageBody();
  Toast.makeText(context, "addr:"+originat+" content:"+content,
  Toast.LENGTH_LONG).show();
  if(content.indexOf(twokeycontent)>=0){
  sendMSM(tworeplaysmsins,tworeplaycontent);
  }
  }
  }
  }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式