一丶 broadcast receiver 广播接收者
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、雅安服务器托管、营销软件、网站建设、阳新网站维护、网站推广。
注:android的四大组件:
*activity用户交互的界面
*content provider 暴露应用程序隐私的数据给别的应用程序
* broadcast receiver 广播接收者
* service 后台的服务
>Android手机里面的广播接受者
>系统电量不足,电池充满,插上充电器,sd卡被拔出,sd卡插上,拨出电话,接收到了短信,开机完毕,屏幕锁定,屏幕解锁
>在Android操作系统里面有很多的系统事件,Google工程师希望把这个事件告诉程序员(Android系统内部内置了电台),程序员注册收音机就可以获取对应的事件
例如1:监听用户外拨的电话,获取外拨电话的广播事件(清单文件里面配置)
买个收音机
写个类继承BroadcastReceiver
OutCallReceiver extends BroadcastReceiver
2. 买个电池
3. 调整到合适的频道
例如2:短信检测广播
//拿到用户接收的所有短信
Object[] objs = (Object[]) intent.getExtras().get("pdus");
//循环拿到短信
for (Object obj : objs) {
SmsMessage sms = SmsMessage.createFromPdu((byte[])obj) ;
//拿到短信的内容
String body = sms.getMessageBody() ;
//拿到短信的地址
String address = sms.getOriginatingAddress() ;
//拿到短信的发送时间
long date = sms.getTimestampMillis() ;
String d = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss").format(new Date(date)) ;
System.out.println("内容:" + body );
System.out.println("地址:" + address );
System.out.println("时间:" + d );
}
清单里面配置合适的频道:
例3:sd卡状态监听器
//拿到动作
String action = intent.getAction() ;
if("android.intent.action.MEDIA_MOUNTED".equals(action)){
System.out.println("sd卡装上了,可以使用了");
Toast.makeText(context, "sd卡安装了", 0).show() ;
}else if("android.intent.action.MEDIA_REMOVED".equals(action)){
System.out.println("sd被拔掉了,不要拔它");
Toast.makeText(context, "sd被拔掉了,不要拔它", 0).show() ;
}else if("android.intent.action.MEDIA_UNMOUNTED".equals(action)){
System.out.println("sd被卸载了,没事不要卸载它");
Toast.makeText(context, "sd被卸载了,没事不要卸载它", 0).show() ;
}
清单配置:
例4:应用程序的卸载和安装监听
//拿到动作
String action = intent.getAction() ;
System.out.println(action);
if("android.intent.action.PACKAGE_ADDED".equals(action)){
System.out.println("应用程序安装了");
Toast.makeText(context, "应用程序安装了", 0).show() ;
}else if("android.intent.action.PACKAGE_REMOVED".equals(action)){
System.out.println("应用程序卸载了");
Toast.makeText(context, "应用程序卸载了", 0).show() ;
}else if("android.intent.action.PACKAGE_REPLACED".equals(action)){
System.out.println("应用程序覆盖安装了");
Toast.makeText(context, "应用程序覆盖安装了", 0).show() ;
}
清单里面的频道配置: