`
wang_peng1
  • 浏览: 3940227 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

监听短信并判断是否未读

阅读更多
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" />

 

分享到:
评论

相关推荐

    使用ContentObserver监视未接电话,未读短信

    通过 ContentObserver,我们可以实时监控特定数据集的变化,比如未接电话和未读短信。 在给定的例子中,我们创建了一个名为 MissedCallContentObserver 的类,该类继承自 ContentObserver,并且会监听未接电话。...

    android 桌面快捷键未读的消息数目,未接来电,短信提醒那个右上角的数字

    在Android操作系统中,桌面快捷方式上的未读消息数目、未接来电和短信提醒的数字标记是一种常见的通知系统功能。这个小数字通常出现在应用图标右上角,被称为“通知徽标”或“角标”。它的作用是提醒用户有未处理的...

    Android管理手机短信

    例如,使用`content://sms/inbox` Uri可以获取收件箱中的短信,通过`cursor.getCount()`判断未读短信的数量,再通过`cursor.getString(cursor.getColumnIndex("body"))`获取短信正文。 接下来,ListView下拉刷新是...

    基于 QT 的短信猫短信收发程序

    对于短信的读取,程序会监听短信猫的串口,一旦接收到新短信,就会触发相应的事件。AT 命令可用于查询短信存储状态,获取短信内容,甚至可以设置短信猫为自动或手动接收模式。短信内容通常以 PDU(Protocol Data ...

    android读取短信验证码自动填入

    为了使应用只对特定来源的验证码感兴趣,你需要在`handleVerificationCode`方法中添加逻辑来判断短信是否来自预期的发送者,例如: ```java String expectedSender = "10690000"; // 预期的验证码发送者 if (sender...

    收发短信,短信控制LED,51单片机例程

    这涉及到解析接收到的短信内容,判断是否包含特定指令,然后执行相应的动作。例如,如果短信内容包含特定的关键词,单片机可能通过GPRS模块回复一条预设的信息。 知识点六:短信控制LED 在“5.短信控制led”文件中...

    STM32-send-english-message.rar_SIM900A stm32短信_STM32短信_english_s

    当SIM900A接收到短信后,会先返回一个提示信息,例如"RING"表示有未读短信,"+CMGL: 1,"表示短信接收成功。STM32解析这些返回信息,判断是否可以读取短信。之后,SIM900A会发送短信内容,STM32继续接收并存储这些...

    自写的GSM短信源码_Delphi程序

    - 发送AT命令并监听回应,根据回应判断操作是否成功,可能需要使用到异步事件处理机制来处理模块的异步响应。 通过以上分析,我们可以看到在Delphi环境下编写GSM短信程序涉及到了通信协议的理解、编程语言的运用、...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--监听之CheckBox是否选中监听 |--监听之EditText内容变化监听 |--监听之GridView条目点击监听 |--监听之ListView条目点击事件监听 |--监听之ListView滑动监听 |--监听之单击监听的两种定义 |--监听之双击监听 |--...

    chatDemoui

    - 消息气泡的设计也很关键,它应该包含消息内容、时间戳以及必要的状态指示,如“已读”或“未读”。 2. **适配器与数据模型**: - 在Android中,消息数据通常通过一个适配器(Adapter)与ListView或RecyclerView...

    sim900a-test.rar_sim900A

    这些可以通过监听SIM900A返回的AT命令响应来判断。例如,如果收到“+CMS ERROR”响应,表示短信发送失败,需要根据错误代码分析原因并采取相应措施。 此外,为了确保短信发送的可靠性,通常会加入重试机制。如果第...

    Java_CMPP3.0_协议实现

    此外,为了确保消息的可靠性,通常需要实现消息确认机制,即服务器接收到消息后返回一个确认应答,客户端根据应答判断消息是否成功发送。 总之,Java CMPP3.0协议实现涉及了网络编程、多线程、消息队列和协议解析等...

    GSM_C51.zip_单片机开发_C/C++_

    3. 接收响应:监听串口,接收GSM模块返回的响应,判断命令执行是否成功。 4. 发送短信:构建短信内容,通过AT+CMGS命令发送短信,可能需要处理编码问题(如7位ASCII或16位Unicode)。 5. 接收短信:通过AT+CMGL命令...

    java 当日提醒功能

    你可以使用`LocalDate`和`LocalTime`来获取当前日期和时间,然后与预定的提醒日期进行比较,判断是否需要发送提醒。 3. **事件驱动编程**:如果系统需要在特定事件发生时发送提醒,可以采用事件驱动架构。Java中,...

    Android简单语音控制手机应用

    在这个场景下,我们可以创建一个解析器,它根据接收到的文本意图,判断用户想要执行的操作,如打电话、发短信或打开特定的应用程序。这可能涉及到字符串匹配、正则表达式或者更复杂的自然语言处理技术。 然后,应用...

    核心适应度警报

    通过发送HTTP请求到服务器,然后解析返回的库存信息,来判断是否触发警报。 2. **Web API调用**:可能需要与某个库存管理系统的API进行交互,如获取库存数据、设置库存监听等。这涉及到理解API的调用方法、参数以及...

    sim900a-call.rar_单片机开发_C/C++_

    例如,"AT+CMGF=1"切换到文本模式,"AT+CNMI=2,2,0,0,0"设置新短信即时通知,"AT+CMGL=\"REC UNREAD\""读取未读短信,以及"ATD+电话号码;"拨打电话等。在C/C++编程中,需要构建发送和接收AT命令的函数,确保命令的...

    疯狂Android讲义源码

     10.4 短信管理器(SmsManager) 400  10.5 音频管理器  (AudioManager) 404  10.5.1 AudioManager简介 404  10.6 振动器(Vibrator) 407  10.6.1 Vibrator简介 407  10.6.2 使用Vibrator控制手机振动 407...

    listings_notify

    3. 条件语句:为了检查列表是否满足特定条件,会使用到`if`、`elif`和`else`等条件判断语句。 4. 异步编程:如果项目需要实时监控列表,可能采用异步编程,如Python的`asyncio`库,以避免阻塞主线程并提高效率。 5...

Global site tag (gtag.js) - Google Analytics