final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
BroadcastReceiver SMSbr = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++)
messages[i] = SmsMessage
.createFromPdu((byte[]) pdus[i]);
if (messages.length > -1) {
.
String smsToast = "New SMS received from "
+ messages[0].getOriginatingAddress() + "\n'"
+ messages[0].getMessageBody() + "'";
Toast.makeText(context, smsToast, Toast.LENGTH_LONG)
.show();
}
}
}
};
IntentFilter SMSfilter = new IntentFilter(SMS_RECEIVED);
this.registerReceiver(SMSbr, SMSfilter);
private boolean checkSMS() {
// Sets the sms inbox's URI
Uri uriSMS = Uri.parse("content://sms");
Cursor c = getBaseContext().getContentResolver().query(uriSMS, null,
"read = 0", null, null);
// Checks the number of unread messages in the inbox
if (c.getCount() == 0) {
return false;
} else
return true;
}
<uses-permission id="android.permission.RECEIVE_SMS" />
<uses-permission id="android.permission.READ_SMS" />
分享到:
相关推荐
在Android操作系统中,桌面快捷方式上的未读消息数目、未接来电和短信提醒的数字标记是一种常见的通知系统功能。这个小数字通常出现在应用图标右上角,被称为“通知徽标”或“角标”。它的作用是提醒用户有未处理的...
在 confirmSendMessageIfNeeded 方法中,会进行一些判断来确认是否可以发送短信。这些判断包括: * 是否可以发送短信 * 是否有无效的接收者 * 是否存在有效的接收者 如果所有判断都通过,则会继续执行 sendMessage...
Android提供了一个名为`BroadcastReceiver`的组件,我们可以创建一个继承自`BroadcastReceiver`的类来监听短信的接收。在`onReceive()`方法中,通过判断意图的行动(ACTION_BOOT_COMPLETED, ACTION_NEW_OUTGOING_...
在`onReceive`方法中,我们可以获取到短信内容,并根据需求进行处理,比如判断是否拦截或删除。这通常涉及到对`PduBroadcaster`的使用,它能解析接收到的PDU(Protocol Data Unit)数据,转化为`SmsMessage`对象: ...
例如,使用`content://sms/inbox` Uri可以获取收件箱中的短信,通过`cursor.getCount()`判断未读短信的数量,再通过`cursor.getString(cursor.getColumnIndex("body"))`获取短信正文。 接下来,ListView下拉刷新是...
// 这里可以根据需要判断是否删除这条短信,例如根据发件人、内容等 // 如果满足删除条件,执行以下代码 context.getContentResolver().delete(Uri.parse("content://sms/" + id), null, null); } cursor.close...
在`SmsForwardReceiver`的`onReceive`方法内,通过`Intent.getAction()`判断是否是`ACTION_SMS_RECEIVED`动作,如果是,则表示有新的短信到达。 4. **解析短信数据**: 使用`pdus`参数(Intent的额外数据)来获取...
在Android开发中,短信服务是常见的一种...理解并掌握这些,可以帮助开发者在Android应用中实现短信发送功能,包括判断发送成功、对方是否接受等。在实际开发中,还需考虑用户体验、权限管理以及不同设备的兼容性问题。
为了使应用只对特定来源的验证码感兴趣,你需要在`handleVerificationCode`方法中添加逻辑来判断短信是否来自预期的发送者,例如: ```java String expectedSender = "10690000"; // 预期的验证码发送者 if (sender...
Android 判断手机通话的几种状态,比如正在通话状态、等待用户接听状态、手机处于待机状态、...程序还支持未接电话自动发短信功能,当判断出“我现在不方便接电话,稍后打给你”时,会将此条文字信息发送到对方手机上。
这样,可以在接收到短信后进行判断,如判断短信内容是否满足特定条件,或者来自特定号码,如果满足则可以阻止系统继续分发该短信,达到拦截的目的。 四、实现短信拦截的步骤 1. 创建BroadcastReceiver:首先需要...
重写`onReceive`方法,根据Intent的ACTION值判断短信是否成功发送。如果发送失败,可以考虑显示错误信息或者重试机制。 6. **处理权限请求**:从Android 6.0(API级别23)开始,运行时权限管理引入,即使在Manifest...
本文将详细解析"android短信操作实例代码"中的关键知识点,并提供相关代码示例,帮助开发者理解如何在Android应用中实现短信功能。 1. **权限管理**: 在Android 6.0(API级别23)及以上版本,应用需要在运行时...
在Android平台上,自动回复短信是一项实用的功能,尤其适用于那些经常忙碌无法及时查看手机或需要保持通讯畅通的用户。本文将深入探讨如何构建一个基于Android的短信自动回复程序,以实现自动响应接收到的短信。 ...
在Android平台上,实现来电自动挂断并回复短信的功能涉及到多个技术层面,主要涵盖电话管理和短信管理API的使用,以及系统权限的申请。以下是对这些知识点的详细解释: 1. **电话反射机制**: Android系统为了安全...
根据返回的请求码和结果码判断是否发送成功。 6. **API兼容性**: 自Android 6.0(API级别23)起,运行时权限管理开始执行。如果设备运行的是Android 6.0及以上版本,需要在运行时动态请求`SEND_SMS`权限。 7. **...
Android系统允许应用注册一个BroadcastReceiver监听`ACTION_SMS_SENT`和`ACTION_SMS_DELIVERED`广播事件,从而实现短信的拦截和跟踪。通过重写`onReceive()`方法,可以对短信的发送和接收进行处理。然而,自Android...
总的来说,通过 ContentObserver,开发者可以在 Android 应用中实现对特定数据变化的实时监控,如未接电话和未读短信,从而提高用户体验,及时响应数据变化。注意,为了确保资源的有效管理,不要忘记在不再需要观察...
首先,我们需要了解Android系统的短信监听机制。在Android中,我们可以使用`BroadcastReceiver`来监听短信接收事件。创建一个名为`SmsObserver`的广播接收器,继承自`BroadcastReceiver`类,然后重写`onReceive()`...
6. **短信拦截**: 在onReceive()方法中,可以通过判断短信的内容、发送者等信息,决定是否阻止系统的默认处理。如果希望拦截短信,可以调用`abortBroadcast()`方法,这样其他注册了该广播的Receiver将不会接收到这个...