android短信广播
1. android 6.0为什么接收不到短信广播
若手机无法接收短信,建议:
1.拨打电话尝试,排除是否为手机欠费导致。
2.查看是否所有短信均无法接收。若是个别或部分号码无法接收,请检查是否设置拦截信息功能(如短信黑名单)。
3.若提示内存已满,请优化手机内存(如:删除部分短信信息)。
4.若无效,请关机将SIM卡取出重新插入尝试。
5.更新手机系统版本:设置-(关于手机/系统更新)-手动下载更新/自动下载更新(软件更新/系统更新-更新)。注:升级前请备份设备中数据。
6.若已是最新版本,请备份手机中数据然后恢复出厂设置尝试。
若问题依然存在,请您携带购机发票、包修卡和机器送到三星服务中心,由专业的售后工程师帮助检测。
2. android 什么时候用到广播
不应该说什么时候用到广播,广播是一种设计模式,在你任何想用或者需要用的时候,都可以用它。 你甚至可以自己设计一个广播模式。
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[] ps = (Object[]) bundle.get("ps");
msgs = new SmsMessage[ps.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.length; i++){
msgs[i] = SmsMessage.createFromP((byte[])ps[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);
}
}
}
}
3. android中的广播是什么意思
android的广播概念和我们日常生活中的电台有相通之处,空气中有不同频段,不同电台的广播,而android系统中就有对应的电池的电量,来电,短信还有例如sd卡拔插等等这些广播的消息发出,这些消息就对应着用收音机调频时,不同电台的节目。而我们注册的广播就类似于我收听某个电台的节目,比如一个注册广播收听交通广播,另一个注册的广播收听音乐广播,那么怎么区分是交通广播还是音乐广播呢,这就要通过前一章提到的Intent的action来判断。
4. ANDROID 应用 无法接收短信广播
短信广播是有序广播,肯定会有先后顺序的,你可以通过设置优先级,让一个先获取,然后再传递给下一个接收。
你扑捉到后不做处理,短息还是和正常那样,会存在收件箱内,标识未读,和正常一样。
5. 简述在android中如何发送广播消息
1.发送广播
Intent intent = new Intent(BroadcastAction);
Bundle bundle = new Bundle();
bundle.putString("***", SUCCESS);
bundle.putString("FullPathName", mFullPathName);
intent.putExtras(bundle);
sendBroadcast(intent);
2.在Activity中创建一个内部类MyBroadcastReceiver扩展BroadcastReceiver,并在其中实现onReceive方法。
3.在Activity中声明一个MyBroadcastReceiver类型的成员变量,并注册:
private MyBroadcastReceiver myBroadcastReceiver;
...
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(BroadcastAction);
registerReceiver(receiver, filter);
4.使用完后要记得释放
unregisterReceiver(receiver);
注:1和2中的 BroadcastAction要是同一个Action
6. Android系统自带短信广播问题SMS_STATUS_RECEIVED
你先判断ac是否等于SMS_STATUS_RECEIVED 等于的话就输出 xxx 就好了
7. 在android中服务机制来做什么发短信为什么需要广播
Service,后台运行,可交互这样的一个东西。它跟Activity的级别差不多,但是他不能自己运行,需要通过某一个Activity或者其他Context对象来调用。
什么时候需要Service呢?比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总是藏在后头的。
Broadcast 实质就是(发送方)并不在意(接收方)接收到广播时如何处理。Android 中有各式各样的广播,各种广播在Android 系统中运行,当系统/应用程序运行时便会向 Android 注册各种广播,Android 接收到广播会便会判断哪种广播需要哪种事件,然后向不同需要事件的应用程序注册事件,不同的广播可能处理不同的事件也可能处理相同的广播事件,这时就需要Android 系统为我们做筛选。
你要了解的是这个方法吧:public void sendTextMessage (String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)
destinationAddress: 收件人地址
scAddress: 短信中心号码,null为默认中心号码
sentIntent: 当消息发出时,成功或者失败的信息报告通过PendingIntent来广播。如果该参数为空,则发信程序会被所有位置程序检查一遍,这样会导致发送时间延长。
deliveryIntent: 当消息发送到收件人时,该PendingIntent会被广播。p数据在状态报告的extended data ("p")中。
如果收件人或者信息为空则抛出 IllegalArgumentException 。
8. android里的广播和通知有什么区别
1、广播
android通过广播来实现不同进程间的通信;对应于广播(broadcat)还有一个广播接收器(broadcast
receiver);每个广播指定了对应的action
、
type等信息,每个接收器根据这些信息来过滤是否自己要接收的广播
2、通知
Notification是Android中常用的一种通知方式,当有未读短信或者未接电话的时候,屏幕的状态栏就会有提示图标,这时可以下拉状态栏来读取通知。在使用微信的时候(微信在后台运行),如果有新消息时便会发出声音提示,状态栏也有相应的微信提示
3、安卓中广播和通知的关系
广播是接收请求,通知是把处理结果告诉用户
9. Android中定义了一个接收短信的广播类,但是里面的OnReceive方法始终没有执行,求解
虽然我眼拙没有看出什么不对劲,网上博文写的基本也如此,但也有点心得:
从短信接收后系统发出广播,虽然是异步广播,但是实际上到你写的接收器接收到并处理之间可能会有一段较长的时间,可能是几秒;
先检查接收器是否注册成功。
10. 请教高人,安卓在系统发送短信成功之后会发送什么广播
你需要自己
写一个Receiver
比如:SMSReceiver
需要在mainfest
.xml
文件里进行配置
这个Receiver
这样你就可以监听短信发送后系统给你发送的广播了自动
重新定义一个Receiver
吧