当前位置: 首页 > news >正文

丽水市网站建设_网站建设公司_移动端适配_seo优化

广西南宁网站推广,dw软件怎么制作网页视频,广州企业模板建站,深圳网站建设i99881、广播接收者 BroadcastReceiver接收系统发出的广播现实中的广播#xff1a;电台为了传达一些消息#xff0c;而发送的广播#xff0c;通过广播携带要传达的消息#xff0c;群众只要买一个收音机#xff0c;就可以收到广播了 Android中的广播#xff1a;系统在运行过程中…1、广播接收者 BroadcastReceiver接收系统发出的广播现实中的广播电台为了传达一些消息而发送的广播通过广播携带要传达的消息群众只要买一个收音机就可以收到广播了 Android中的广播系统在运行过程中会发生很多事件系统为了让其他应用知道系统发生了这个事件会发送一个对应该事件的广播比如电量改变、收到短信、拨打电话、屏幕解锁、系统开机应用只要注册一个广播接收者就可以接收到系统发出的广播2、定义方式 定义一个类继承BroadcastReceiver package com.ecollab.ipdialor;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent;public class CallReceiver extends BroadcastReceiver {//收到广播时调用Overridepublic void onReceive(Context context, Intent intent) {//取出广播中的号码String number getResultData();String newNumber 17951 number;//把修改后的号码放入广播中setResultData(newNumber);} } View Code 在清单文件中配置该类指定接收的广播种类 receiver android:namecom.ecollab.ipdialer.CallReceiver intent-filter action android:nameandroid.intent.action.NEW_OUTGOING_CALL/ /intent-filter /receiver ?xml version1.0 encodingutf-8? manifest xmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.ecollab.ipdialorandroid:versionCode1android:versionName1.0 uses-sdkandroid:minSdkVersion14android:targetSdkVersion21 /uses-permission android:nameandroid.permission.PROCESS_OUTGOING_CALLS/applicationandroid:allowBackuptrueandroid:icondrawable/ic_launcherandroid:labelstring/app_nameandroid:themestyle/AppTheme activityandroid:name.MainActivityandroid:labelstring/app_name intent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activityreceiver android:namecom.ecollab.ipdialor.CallReceiverintent-filteraction android:nameandroid.intent.action.NEW_OUTGOING_CALL //intent-filter/receiver/application/manifest View Code 广播是通过intent发送的intent中会携带一个action系统会在所有清单文件中寻找看哪一个广播接收者的intent-filter和广播中的intent是匹配的那么这个广播接收者就会收到这条广播3、IP拨号器 系统拨打号码时会发出一个广播广播中会携带拨打的号码注册广播接收者接收这个广播取出这个号码修改这个号码然后把修改后的号码重新放入广播广播接收者所在进程即便没有启动广播发送出来时系统也会启动这个进程然后把广播交给广播接收者接收打电话广播需要权限 uses-permission android:nameandroid.permission.PROCESS_OUTGOING_CALLS/4、短信拦截器 系统收到短信时会产生一条广播广播中包含了短信的号码和内容设置广播接收者的优先级大于系统短信应用先一步收到短信广播然后拦截广播短信应用收不到广播用户就看不到短信了 定义广播接收者接收短信广播所有系统广播里怎么发数据我们自己建的应用就怎么取数据 public void onReceive(Context context, Intent intent) { //拿到系统广播里携带的短信内容 Bundle bundle intent.getExtras(); Object[] objects (Object[]) bundle.get(pdus); for(Object ob : objects ){ //通过object对象创建一个短信对象 SmsMessage sms SmsMessage.createFromPdu((byte[])ob);   if(13888.equals(sms.getOriginatingAddress())) { abortBroadcast();//拦截短信 } System.out.println(sms.getMessageBody()); System.out.println(sms.getOriginatingAddress()); } } 系统创建广播时把短信存放到一个数组然后把数据以pdus为key存入bundle再把bundle存入intent。拦截后的短信再发给系统短信应用。清单文件中配置广播接收者接收的广播类型注意要设置优先级属性-1000至1000要保证优先级高于短信应用才可以实现拦截receiver android:namecom.itheima.smslistener.SmsReceiver intent-filter android:priority1000 action android:nameandroid.provider.Telephony.SMS_RECEIVED/ /intent-filter /receiver 添加权限 uses-permission android:nameandroid.permission.RECEIVE_SMS/4.0之后进程需要启动过一次广播接收者才能生效4.0之后用户手动停止进程那么广播接收者再也不会启动了直到用户下一次手动启动进程 5、监听SD卡状态 清单文件中定义广播接收者接收的类型监听SD卡常见的三种状态所以广播接收者需要接收三种广播 receiver android:namecom.itheima.sdcradlistener.SDCardReceiver intent-filter action android:nameandroid.intent.action.MEDIA_MOUNTED/ action android:nameandroid.intent.action.MEDIA_UNMOUNTED/ action android:nameandroid.intent.action.MEDIA_REMOVED/ data android:schemefile/ /intent-filter /receiver 广播接收者的定义不用switch对比字符串 public class SDCardReceiver extends BroadcastReceiver { Override public void onReceive(Context context, Intent intent) { // 区分接收到的是哪个广播 String action intent.getAction(); if(action.equals(android.intent.action.MEDIA_MOUNTED)){ System.out.println(sd卡就绪); } else if(action.equals(android.intent.action.MEDIA_UNMOUNTED)){ System.out.println(sd卡被移除); } else if(action.equals(android.intent.action.MEDIA_REMOVED)){ System.out.println(sd卡被拔出); } } } 6、勒索软件流氓软件  接收开机广播在广播接收者中启动勒索的Activity开机启动 清单文件中配置接收开机广播 receiver android:namecom.itheima.lesuo.BootReceiver intent-filter action android:nameandroid.intent.action.BOOT_COMPLETED/ /intent-filter /receiver 权限 uses-permission android:nameandroid.permission.RECEIVE_BOOT_COMPLETED/ 定义广播接收者 Override public void onReceive(Context context, Intent intent) {//开机的时候就启动勒索软件 Intent it new Intent(context, MainActivity.class); //it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(it); } 以上代码还不能启动MainActivity因为广播接收者的启动并不会创建任务栈那么没有任务栈就无法启动activity手动设置创建新任务栈的flag。 it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);7、监听应用的安装、卸载、更新 应用在安装卸载更新时系统会发送广播广播里会携带应用的包名 清单文件定义广播接收者接收的类型因为要监听应用的三个动作所以需要接收三种广播 receiver android:namecom.itheima.app.AppReceiver intent-filter action android:nameandroid.intent.action.PACKAGE_ADDED/ action android:nameandroid.intent.action.PACKAGE_REPLACED/ action android:nameandroid.intent.action.PACKAGE_REMOVED/ data android:schemepackage/ /intent-filter /receiver 广播接收者的定义 public void onReceive(Context context, Intent intent) { //区分接收到的是哪种广播 String action intent.getAction(); //获取广播中包含的应用包名 Uri uri intent.getData(); if(action.equals(android.intent.action.PACKAGE_ADDED)){ System.out.println(uri 被安装了); } else if(action.equals(android.intent.action.PACKAGE_REPLACED)){ System.out.println(uri 被更新了); } else if(action.equals(android.intent.action.PACKAGE_REMOVED)){ System.out.println(uri 被卸载了); } } 8、发送自定义广播 Intent intent new Intent(); intent.setAction(ecollab.ui.web); sendBroadcast(intent); 接收跟系统广播相同。 9、广播的两种类型 无序广播所有跟广播的intent匹配的广播接收者都可以收到该广播并且是没有先后顺序同时收到有序广播所有跟广播的intent匹配的广播接收者都可以收到该广播但是会按照广播接收者的优先级来决定接收的先后顺序发送方法为sendOrderedBroadcast优先级的定义-1000~1000结果接收者所有广播接收者都接收到广播之后它才接收并且一定会接收//resultReceiver在所有广播接收者收到广播后才会收到。定义内部接收者类无需在清单文件中注册 sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras)   class MyReceiver extends BroadcastReceiver{ Override public void onReceive(Context context, Intent intent) { } } sendOrderedBroadcast(intent, null, new MyReceiver(),null,0,广播内容,null);   abortBroadCast阻止其他接收者接收这条广播类似拦截只有有序广播可以被拦截 转载于:https://www.cnblogs.com/ecollab/p/5909979.html
http://www.ihoyoo.com/news/133826.html

相关文章:

  • 淮安做网站找哪家好北京网站建设上北京九五至尊网络
  • 精品课程网站建设毕业设计论文网站开发语言市场有率
  • 嵊州网站设计虚拟主机搭建wordpress
  • 高端网站设计报价网站管理系统安装
  • 厦门网站制作开发收费团购网站切换城市js特效代码
  • 网站列表页模板网站角色管理
  • 建设工程质量监理协会网站研发管理系统软件
  • 广州网站搜索排名威海外贸建站
  • 购物网站开发教程中文网站建设这方面的
  • 网站身份验证怎么做网站建设的指标
  • 南京农业大学新校区建设网站企业网站优化甲薇g71679做同等效果下拉词
  • 建网站那种服务器好为什么博客需要wordpress
  • 廊坊企业网站建设公司最新行业动态
  • 网站制作需要什么软件有哪些通辽做网站通过seo来赚钱
  • 做网站客户会问什么问题wordpress 10万并发
  • 有哪些网站开发公司网站建设模块需求分析
  • 益阳市建设局网站是什么做网站教程如乐
  • 网站弹窗广告怎么做宁波h5建站
  • 网站开发费用做账怎么创业做电商
  • linux建设视频网站做网站主色调选择
  • 国外网页网站erp财务软件怎么使用
  • app网站建设制作建官网公司
  • 百度站长平台验证网站专业营销网站制作
  • 有什么手机网站wordpress vuln
  • 新建的网站多长时间在百度搜到高端会所
  • 淮南城乡建设局网站青海集团网站建设
  • 抚顺市网站建设永川集团网站建设
  • 济南网站建设哪个好百度重庆营销中心
  • 网站建设需要哪些条件陇西做网站的公司
  • wordpress 图片seo优化效果