`

android 发送超长短信

阅读更多
感谢:http://www.pocketdigi.com/20110715/395.html

如果短信内容过长,可以使用SmsManager.divideMessage(String text)方法自动拆分成一个ArrayList数组,再根据数组长度循环发送,或者直接用sendMultipartTextMessage方法发送,参数与sendTextMessage类似,无非是短信内容变成了用divideMessage拆成的ArrayList,两个广播也是,所以不再写例子.
前面说到可以通过发送Intent的方式跳转到短信发送界面,让用户自行发送短信,今天学习的SmsManager可以在后台发送短信,无需用户操作,某些无良开发者就用这个SmsManager功能在后台偷偷给SP发短信,导致用户话费被扣.其实,这些应用还是很好分辨的,因为要通过SmsManager发送短信,必须添加android.permission.SEND_SMS权限,在安装的时候稍稍注意就可以了,当然也有通过在程序中下载其他有短信权限的应用,后台安装发送短信的情况,在安装的时候注意该应用是否有安装其他应用的权限(android.permission.INSTALL_PACKAGES),如果没有这个权限,安装应用是必须先经过用户点击的.


package com.hello;
 
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.SmsManager;
 
public class HelloWorldActivity extends Activity {
    /** Called when the activity is first created. */
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String action="com.pocketdigi";
 
        sendReceiver receiver=new sendReceiver();
        IntentFilter filter=new IntentFilter();
		filter.addAction(action);
		registerReceiver(receiver,filter);
        //必须先注册广播接收器,否则接收不到发送结果
 
        SmsManager smsMgr = SmsManager.getDefault(); 
        Intent intent = new Intent(action);
        PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 0);
        smsMgr.sendTextMessage("10086", null, "1561", pi, null);
        //参数分别为号码,短信服务中心号码(null即可),短信内容,短信发送结果广播PendingIntent,短信到达广播
     //关于短信到达广播(对方接收到短信时广播),据网上说,中国移动有,中国联通没有,有兴趣的同学自己试试,没兴趣直接null
    }
 
    class sendReceiver extends BroadcastReceiver{
    	//写个接收器
		@Override
		public void onReceive(Context context, Intent intent) {
			// TODO Auto-generated method stub
			int resultCode = getResultCode();
			if(resultCode==Activity.RESULT_OK){
				System.out.println("发送成功");
			}else{
				System.out.println("发送失败");
			}
		}
    }
}
分享到:
评论

相关推荐

    发短信小例子(Android)

    这个"发短信小例子"就是一个简单的实现,旨在帮助开发者理解如何在Android应用中集成短信发送功能。下面将详细讲解这个功能的实现步骤、核心代码以及需要注意的关键点。 首先,Android系统提供了一个名为`...

    Android获取手机短信

    通常,短信存储在`content://sms/`这个URI下,分为收件箱(inbox)、草稿箱(drafts)、发件箱(sent)和已发送(outbox)四个类别。 ```java ContentResolver contentResolver = getContentResolver(); Uri smsUri...

    android 简单的短信发送

    在Android平台上,短信发送是一项基本且重要的功能,它允许用户通过应用程序向其他手机发送文本消息。这个"android 简单的短信发送"项目显然旨在教授如何在Android应用中实现这个功能,尤其适合初学者入门。以下是...

    Android 实现发短信 监听短信发送状态

    至于保存短信至发件箱,Android系统默认会自动保存已发送的短信,但如果你想自定义存储或备份,可以使用`ContentResolver`和`UriSMSContentProvider`来访问和操作短信数据。 总结一下,Android实现发送短信和监听...

    android发送短信程序

    在Android平台上,开发一个能够发送短信的程序是一个常见的需求,特别是在构建消息传递或者通知类的应用时。本例为你提供了一个基础的实现方案,适用于Android 2.3及以上版本的系统。下面将详细介绍如何在Android中...

    Android如何实现接收和发送短信

    每一部手机都具有短信接收和发送功能,下面我们通过代码来实现接收和发送短信功能。  一、接收短信 1、创建内部广播接收器类,接收系统发出的短信广播 2、从获得的内容中解析出短信发送者和短信内容 3、在...

    Android发送短信程序

    ### Android发送短信程序详解 #### 一、项目创建与配置 根据给定文件中的内容,本文将详细介绍如何在Android环境中创建并实现一个简单的发送短信的应用程序。本例中,我们将创建一个名为`SendMessage`的工程项目,...

    android 定时发送短信 (新)

    在Android平台上,定时发送短信是一项实用的功能,尤其适用于提醒、通知或者特定时间的自动化操作。在"android 定时发送短信 (新)"这个程序中,开发者为用户提供了一个全面的解决方案,来满足这类需求。该程序支持...

    Qt android 发短信,查看短信

    一、Qt Android发送短信 1. **集成Android SDK**:首先,确保在Qt项目中正确地集成了Android SDK,并且在.pro文件中添加了对应的平台支持,例如`QT += androidextras`。 2. **创建Java层接口**:在Android源码目录...

    unity调用Android Api实现短信发送和震动功能

    对于发送短信,需要`<uses-permission android:name="android.permission.SEND_SMS" />`,对于震动则需要`<uses-permission android:name="android.permission.VIBRATE" />`。 7. **注意事项**:在实际应用中,需要...

    基于android发短信程序

    在Android平台上开发发短信程序是一项...总之,创建一个基于Android的发短信程序涉及理解`SmsManager`,获取并使用权限,以及构建用户界面来交互和反馈发送状态。通过不断实践和学习,你可以开发出功能丰富的短信应用。

    Android系统源码短信收发流程分析

    Android 短信收发流程是 Android 系统源码中一个非常重要的模块,它负责处理短信的发送和接收过程。在这个流程中,涉及到多个组件和类别,包括 ComposeMessageActivity、WorkingMessage、TelephonyManager 等。下面...

    android 获取手机短信内容并及时刷新短信

    在Android平台上,获取手机短信内容并实时刷新是一项常见的需求,特别是在开发与消息处理相关的应用程序时。这个过程涉及到Android系统的SMS(Short Message Service)API以及监听短信变化的能力。下面将详细介绍...

    运用Android Studio实现打电话和发短信

    在Android平台上,开发人员可以利用Android Studio来实现与通信相关的功能,如打电话和发送短信。本文将详细讲解如何在Android应用中集成这些功能,并确保遵循正确的权限管理。 首先,我们需要在项目的`...

    Android短信发送程序

    在Android平台上,开发一个短信发送程序是一个常见的任务,它涉及到Android SDK中的许多核心组件和API。这个程序的主要目的是允许用户向其他设备发送短信,这里特别提到了在两个模拟器之间进行信息传递。以下是对这...

    【Android】短信发送

    在Android平台上,短信发送是移动应用开发中常见的一项功能,特别是在构建通信或通知类应用时。这个【Android】短信发送的示例(Demo)旨在帮助开发者理解如何在Android应用程序中集成短信发送的功能。通过分析提供...

    Android自动发送短信源码

    在Android平台上,自动发送短信是一项常见的功能,尤其在应用程序中,如紧急通知、验证码验证或者后台服务通信等场景。这个源码提供了一个很好的学习和参考的例子,帮助开发者了解如何实现这一功能。以下将详细讲解...

    Android之发送短信的两种方式

    2. 调起系统发短信功能(并设置发送状态的监听) 当需要用户确认短信内容或希望用户看到发送过程时,可以使用此方法。这通常通过创建一个Intent,指定ACTION_SENDTO操作,并设置数据URI为SMsto协议。例如: ```java...

    android 零权限发送短信

    在Android系统中,由于安全性的考虑,从Android 6.0(API级别23)开始,应用程序需要在运行时请求危险权限,包括发送短信这一功能。然而,对于Android 4.0(API级别14)及以下的版本,应用程序在安装时就已经获取了...

    Android手机后台发送短信

    在Android平台上,开发人员可以利用系统的短信服务API来实现后台发送短信的功能。这在很多应用场景中都很常见,比如系统通知、验证码验证或者自动化任务等。本文将深入探讨如何在Android中实现在后台发送短信,以及...

Global site tag (gtag.js) - Google Analytics