`
mickey_hou
  • 浏览: 247763 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android 部分接收器处理 BroadCastReceiver

阅读更多
public class DisposeBCReceiver extends BroadcastReceiver
{
   
    public static final String SMS_ACTION = "android.provider.Telephony.SMS_RECEIVED";
   
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Bundle bundle = intent.getExtras();
        StringBuffer sb = new StringBuffer();
        //短信接收
        if (intent.getAction().equals(SMS_ACTION))
        {
            if (null != bundle)
            {
                Set<String> keys = bundle.keySet();
                for (String key : keys)
                {
                    Log.v("---------------", key);
                }
            }
           
            /*
             * 获得收到的短信数据
             */
            Object[] objArr = (Object[]) bundle.get("pdus");
           
            /*
             * 定义封装短信内容SMSMessage对象数组
             */
            SmsMessage[] message = new SmsMessage[objArr.length];
           
            for (int i = 0; i < objArr.length; i++)
            {
                message[i] = SmsMessage.createFromPdu((byte[]) objArr[i]);
                sb.append("手机号码是:");
                sb.append(message[i].getOriginatingAddress());
                sb.append("\n");
                sb.append("短信内容是:");
                sb.append(message[i].getDisplayMessageBody());
            }
           
            Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG);
        }
        //屏幕状态接收
        else if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF))
        {
            sb.append("屏幕休眠状态...");
            Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG);
        }
        else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON))
        {
            sb.append("屏幕唤醒状态...");
            Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG);
        }
        //电池用量接收
        else if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED))
        {
            sb.append("电池用量:");
            int level = intent.getIntExtra("level", 0);
            int scale = intent.getIntExtra("scale", 100);
            sb.append((level * 100)/scale);
            sb.append("%");
            Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG);
        }
    }
}

程序处理:
receiver = new DisposeBCReceiver();
        IntentFilter filter1 = new IntentFilter("android.provider.telephony.SMS_RECEIVED");
        registerReceiver(receiver, filter1);
        IntentFilter filter4 = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        registerReceiver(receiver, filter4);
        Toast.makeText(basicContext, "短信消息接收器注册成功!", Toast.LENGTH_LONG);

AndroidManifest.xml中权限处理
<!-- 短信接收权限添加 -->
<uses-permission android:name="android.permission.RECEIVE_SMS" />
分享到:
评论

相关推荐

    BroadcastReceiver广播接收器演示demo

    BroadcastReceiver,中文名为广播接收器,是Android系统中四大组件之一,用于接收系统或应用程序发布的广播事件。在Android系统中,任何组件或者服务都可以发送广播,而BroadcastReceiver则可以监听并响应这些广播,...

    广播接收器-BroadcastReceiver 电池电量显示

    在Android系统中,BroadcastReceiver(广播接收器)是Android四大组件之一,用于监听系统或应用广播事件,并在接收到特定广播时执行相应的处理逻辑。广播接收器可以接收各种类型的广播,例如系统电量变化、网络状态...

    Android 广播接收者--BroadcastReceiver

    3. **创建意图过滤器(IntentFilter)**:定义BroadcastReceiver可以接收的Intent类型,通过addAction()添加动作,addDataScheme()添加数据协议,addCategory()添加类别等。 4. **发送广播**:使用Context的...

    Android自学笔记-17-广播接收者(BroadcastReceiver)

    在Android开发中,广播接收者(BroadcastReceiver)是Android四大组件之一,它是系统用来传递全局消息的一种机制。当你创建一个BroadcastReceiver,你可以监听系统或应用发送的广播,并在接收到广播时执行相应的处理...

    Android学习之BroadcastReceiver总结

    BroadcastReceiver在Android系统中充当一个监听器,当接收到匹配的Intent广播时,会调用其定义的onReceive()方法。BroadcastReceiver有两种注册方式:静态注册和动态注册。 1. 静态注册:在AndroidManifest.xml文件...

    android服务自启动Service以及BroadcastReceiver和Notification.zip

    在Android开发中,服务(Service)、广播接收器(BroadcastReceiver)和通知(Notification)是三个核心组件,它们各自承担着不同的职责,同时在特定场景下相互配合,为应用程序提供后台运行、事件监听和用户交互的...

    基于Android的广播接收器的设计与应用.pdf

    广播接收器(BroadcastReceiver)是一种用来过滤、接收并响应广播的组件,通过广播接收器可以监听系统中的广播消息,在不同组件之间进行通信。例如,在Android系统中内置了很多系统级别的广播,如手机开机完成后会...

    Android广播onReceiver回调更新ui

    在Android系统中,广播接收器(BroadcastReceiver)是一种非常重要的组件,它允许应用程序接收并响应系统或应用广播的意图(Intent)。"Android广播onReceiver回调更新ui"这个主题主要涉及如何在广播接收器中处理...

    Android-将一个BroadcastReceiver转成一个Observable

    例如,可以使用observeOn()方法指定在哪个调度器上处理事件,使用subscribeOn()方法指定在哪里创建Observable,以及使用subscribeWith()方法使用自定义的 DisposableObserver 来处理订阅过程中的异常。 总之,通过...

    Android BroadcastReceiver Demo

    总结来说,"Android BroadcastReceiver Demo"旨在帮助开发者理解BroadcastReceiver的使用,通过创建`BearBroadcastReceiver`类,学习如何接收和处理广播,以及如何在不同情况下注册BroadcastReceiver。熟悉这些知识...

    android BroadcastReceiver 源码

    在Android系统中,BroadcastReceiver是实现跨进程通信和全局事件通知的重要组件。它允许应用程序接收并响应系统或自定义广播事件,即使应用没有在运行。本文将深入探讨`BroadcastReceiver`的源码,帮助你理解其工作...

    Android \BroadCastReceiver 简介

    `Context.sendBroadcast()`、`Context.sendOrderedBroadcast()` 或 `Context.send StickyBroadcast()`)时,系统会检查所有已注册的 `BroadcastReceiver`,根据它们的 Intent 过滤器决定哪些应该接收这个广播。...

    Android 广播接收器案例

    在Android系统中,广播接收器(BroadcastReceiver)是一种非常重要的组件,它允许应用程序在接收到系统或应用广播消息时执行相应的操作。这个案例主要探讨如何创建、注册和使用BroadcastReceiver来处理Android系统的...

    android demo,BroadcastReceiver源代码的实现。

    在Android系统中,BroadcastReceiver(广播接收者)是四大组件之一,它负责监听并响应系统或应用程序发布的广播意图(Intent)。这个"android demo,BroadcastReceiver源代码的实现"是一个示例,旨在帮助开发者理解...

    android 广播接收完整源码

    在Android系统中,广播接收器(Broadcast Receiver)是四大组件之一,它负责监听并响应系统或应用程序发布的广播意图(Intent)。本资源提供的“android 广播接收完整源码”应该包含了一个实现广播接收功能的完整...

    短信接收器

    在Android平台上,短信接收器(SMS Receiver)是Android广播接收者(BroadcastReceiver)的一个实例,用于监听并处理系统发出的短信到达的广播事件。本文将详细介绍如何使用Android Eclipse开发环境来创建一个短信...

    Android移动应用开发中BroadcastReceiver单元主要内容.pdf

    在Android移动应用开发中,BroadcastReceiver扮演着至关重要的角色,它是Android系统中一种核心的组件,用于接收并响应系统或应用程序发出的广播消息。BroadcastReceiver允许应用程序在后台运行,即使用户并未直接与...

    Delphi Android 广播事件处理

    在本文中,我们将深入探讨如何使用Delphi这个强大的RAD(快速应用开发)工具来处理Android系统的广播事件,特别是静态注册广播接收器的方式。 首先,我们要了解广播接收器(BroadcastReceiver)。在Delphi中,广播...

    Android之Broadcast, BroadcastReceiver(广播)

    BroadcastReceiver(广播接收器)是Android四大组件之一,用于监听并接收系统或应用发布的广播事件。下面将详细阐述Android广播机制以及如何注册BroadcastReceiver。 1. Android广播机制: - 广播分为有序广播和...

    Android Studio—接受多个广播、广播传递数据.zip

    在Android应用开发中,BroadcastReceiver(广播接收器)是一个关键组件,它允许应用程序接收和响应系统或自定义广播事件。Android Studio是Google官方推出的集成开发环境,专门用于Android应用开发。本教程将深入...

Global site tag (gtag.js) - Google Analytics