`
androidboy_bj
  • 浏览: 31814 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类

Android短信功能源码方法

阅读更多

    Android系统提供了Intent方法,来实现短信接口的调用。使用startActivity()启动了了短信功能后,短信界面就会呈现在用户面前。开发其他应用程序用此方法,就显得不太合理。在这里总结使用源码来完成短信发送任务,很多代码都来自网上,在这里,我仅做了点封装。

由于在MSM短信是在后台发送的,取名为sendTextMsgBack()。

void sendTextMsgBack(Context _context,  //函数调用者
            String _strDestAddress,   //收件人号码
            String _strMessage){   //短信内容       Intent sentIntent=new Intent(SENT_SMS_ACTION);
      PendingIntent sentPI=PendingIntent.getBroadcast(_context, 0, sentIntent, 0);

      //仅在当目标用户接收到你的SMS消息后触发
      Intent deliverIntent=new Intent(DELIVERED_SMS_ACTION);
      PendingIntent deliverPI=PendingIntent.getBroadcast(_context, 0, deliverIntent, 0);       SmsManager sms = SmsManager.getDefault();       if (_strMessage.length() > 70) {
          ArrayList<String> msgs = sms.divideMessage(_strMessage);
          for (String msg : msgs) {
             sms.sendTextMessage(_strDestAddress, null, msg, sentPI, deliverPI);       } else {
              sms.sendTextMessage(_strDestAddress, null, _strMessage, sentPI, deliverPI);
      }

为了监视短信的发送状态,另外还需要两个广播接收器。

    final String SENT_SMS_ACTION = "SENT_SMS_ACTION";
    final String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";


    private class SMS_BroadcastReceiver extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {
            //System.out.println("SMS_BroadcastReceiver");
            switch (getResultCode()) {
            case Activity.RESULT_OK:
                Toast.makeText(getBaseContext(), "SMS sent success actions",
                          Toast.LENGTH_SHORT).show();
                System.out.println("SMS sent success actions");
                break;
            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                Toast.makeText(getBaseContext(), "SMS generic failure actions",
                          Toast.LENGTH_SHORT).show();
                System.out.println("SMS generic failure actions");
                break;
            case SmsManager.RESULT_ERROR_RADIO_OFF:
                Toast.makeText(getBaseContext(),
                          "SMS radio off failure actions", Toast.LENGTH_SHORT).show();
                System.out.println("SMS radio off failure actions");
                break;
            case SmsManager.RESULT_ERROR_NULL_PDU:
                Toast.makeText(getBaseContext(),
                          "SMS null PDU failure actions", Toast.LENGTH_SHORT).show();
                System.out.println("SMS null PDU failure actions");
                break;
            }

        }   
    private class Dele_BroadcastReceiver extends BroadcastReceiver{
        @Override
         public void onReceive(Context _context,Intent _intent){
             Toast.makeText(getBaseContext(),
                 "SMS delivered actions",
                 Toast.LENGTH_SHORT).show();
              System.out.println("SMS delivered actions");     }

在Activity对象里,对这两个广播接收器进行注册。

另外,在提供个对Intent方法发送短信的函数封装:

    void sendTextMsgFont(Context _context,   //函数调用者
            String _strDestAddress,   //收件人号码
            String _strMessage){   //短信内容
 

        Uri uri = Uri.parse( "smsto:" + _strDestAddress);
        Intent it = new Intent(Intent.ACTION_SENDTO, uri);
        it.putExtra("sms_body", _strMessage);
        _context.startActivity(it);
    }

-
分享到:
评论
1 楼 TB0904098 2011-11-22  
  

相关推荐

    Android SMSNotify Android 短信通知源码

    【Android SMSNotify】是一款专为Android...通过对`SMSNotify`源码的学习和理解,开发者不仅可以掌握Android短信通知的实现方式,还能深入了解Android系统的组件交互、权限管理、数据存储以及性能优化等多方面知识。

    Android代码-一个短信应用源码.zip

    【Android短信应用源码解析】 在Android开发中,构建一个短信应用涉及到许多核心技术和组件的使用。本项目源码提供了一个完整的短信应用实例,通过它我们可以深入理解Android平台上的消息处理、用户界面设计以及与...

    android手机短信源码

    首先,Android短信服务主要基于TelephonyManager、SmsManager和ContentProvider等组件。`TelephonyManager`是获取手机通话状态和信息的主要接口,包括获取SIM卡信息、网络状态等。`SmsManager`则负责短信的发送和...

    Android短信拦截源码

    这个"Android短信拦截源码"可能包含了实现这一功能的完整代码库,可以帮助我们理解如何在Android应用中实现短信的拦截和管理。下面将详细讨论Android短信拦截的相关知识点。 1. **BroadcastReceiver**: 在Android中...

    Android 短信小助手源码.zip

    【Android短信小助手源码分析】 本篇将深入解析名为"Android 短信小助手源码.zip"的压缩包内容,重点围绕Android平台上短信应用的实现机制进行讲解。这款应用主要提供了两个核心功能:短信快速回复和短信过滤。由于...

    Android短信发送源码

    这个"Android短信发送源码"示例为你提供了一种简单易懂的方法来实现这一功能。下面将详细讲解相关知识点,包括Android SMS API的使用、权限管理以及实际的代码实现。 首先,Android系统为发送短信提供了`SmsManager...

    android 短信源码

    `SmsBroadcastReceiver`是Android短信功能的关键组件,用于监听并响应短信相关的系统广播,如短信到达、发送成功或失败等事件。当接收到这些广播时,广播接收者会触发相应的处理逻辑。 3. **内容提供者(Content ...

    一个android短信程序.源码

    【Android短信程序源码解析】 Android短信程序是一个用于在移动设备上发送和接收短信的应用,其核心功能包括自定义编辑短信、短信分类以及收藏功能。这个"短信小窝"源码提供了一个完整的实现,让我们来深入探讨其中...

    Android 短信小助手源码-IT计算机-毕业设计.zip

    首先,我们要明确的是,“Android短信小助手”是一款针对Android系统设计的应用,它主要功能可能包括接收、发送短信,管理短信,以及可能的一些高级功能,如短信过滤、自动回复等。通过这款应用的源码,我们可以了解...

    Android 短信小助手源码.rar

    【Android短信小助手源码分析】 这个压缩包文件"Android 短信小助手源码.rar"包含了构建一个Android平台上短信管理应用的源代码。在Android开发中,短信功能是移动设备上的基本服务之一,允许用户发送、接收、管理...

    Android程序研发源码Android 短信小助手源码.rar

    以上是对Android短信小助手源码的关键技术点的解析,通过学习这个项目,开发者可以了解到Android系统中如何实现短信监听、解析和处理的基本流程,这对于构建更复杂的消息传递应用具有很大的参考价值。

    Android例子源码可以定时批量发送短信的短信时光机.rar

    Android例子源码可以定时批量发送短信的短信时光机是一个可以自定义定时批量短信发送例子源码(类似于短信时光机),编辑的短信可以一键选择多个联系人进行定时发送,批量发送祝福短信这种情况在节假日是普遍存在的...

    android 短信拦截源码

    本项目“android 短信拦截源码”提供了实现这一功能的代码示例,我们可以从中学到如何在Android应用中实现短信监听和拦截。 首先,短信拦截的核心是利用Android的BroadcastReceiver类。BroadcastReceiver是Android...

    安卓Android源码——短信小助手源码.zip

    【Android短信小助手源码解析】 本篇将详细介绍基于安卓Android平台的短信小助手源码,这是一款能够帮助用户管理、发送和接收短信的应用程序。通过深入理解这个源码,开发者可以学习到如何在Android系统中实现短信...

    Android高级应用源码-android模拟短信插入和接收.zip

    在Android平台上,开发一款能够模拟短信插入和接收的应用是一项高级技术任务,这涉及到对Android系统的深入理解和对...通过这个源码学习,可以深入理解Android系统的短信服务,并为开发更复杂的通讯应用打下坚实基础。

Global site tag (gtag.js) - Google Analytics