技术蛀虫

导航

短信管理器

短信管理器 : SmsManager

1. 在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager

   之后应该用 android.telephony.SmsManager;

2. 获取系统默认的短信管理器 

SmsManager smsManager = SmsManager.getDefault();

3. 按照每条短信最大字数来拆分短信

   List<String> divideContents = smsManager.divideMessage(content);

4. 发送短信

       smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)

             -- destinationAddress:目标电话号码

             -- scAddress:短信中心号码,测试可以不填

             -- text: 短信内容

             -- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理   即,这个意图包装了短信发送状态的信息

             -- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收到这个信息 --> 后续处理  即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。

 

5. 声明短信发送权限

     * AndroidManifest.xml

       <uses-permission android:name="android.permission.SEND_SMS"/>

 1 01.package com.king.gametall;  
 2 02.import java.util.List;  
 3 03.import android.app.Activity;  
 4 04.import android.app.PendingIntent;  
 5 05.import android.content.Intent;  
 6 06.import android.os.Bundle;  
 7 07.import android.telephony.SmsManager;  
 8 08.import android.view.View;  
 9 09.import android.view.Window;  
10 10.import android.view.WindowManager;  
11 11.import android.widget.Button;  
12 12.import android.widget.EditText;  
13 13.import android.widget.Toast;  
14 14.public class RecommendActivity extends Activity{  
15 15.    private EditText etData,etFriends;  
16 16.    private Button btn;  
17 17.    public void onCreate(Bundle onSavedInstance){  
18 18.        super.onCreate(onSavedInstance);  
19 19.        requestWindowFeature(Window.FEATURE_NO_TITLE);  
20 20.        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  
21 21.        setContentView(R.layout.recommend);  
22 22.          
23 23.        etData=(EditText)findViewById(R.id.recommenddata);  
24 24.        etFriends=(EditText)findViewById(R.id.friendsdata);  
25 25.        btn=(Button)findViewById(R.id.recommendbtn);  
26 26.          
27 27.        btn.setOnClickListener(new Button.OnClickListener(){  
28 28.            public void onClick(View v) {  
29 29.                String messageAddress=etFriends.getText().toString();  
30 30.                String messageContent=etData.getText().toString();  
31 31.                  
32 32.                SmsManager smsManager=SmsManager.getDefault();  
33 33.                List<String> divideContents = smsManager.divideMessage(messageContent);    
34 34.                if(messageAddress.trim().length()==11&&messageContent.trim().length()!=0){  
35 35.                    PendingIntent pintent=PendingIntent.getBroadcast(RecommendActivity.this, 0, new Intent(), 0);  
36 36.                    smsManager.sendTextMessage(messageAddress, null, messageContent, pintent, null);  
37 37.                    Toast.makeText(RecommendActivity.this, "send success", Toast.LENGTH_SHORT).show();  
38 38.                }else{  
39 39.                    Toast.makeText(RecommendActivity.this, "send error", Toast.LENGTH_SHORT).show();  
40 40.                }  
41 41.            }  
42 42.        });  
43 43.    }  
44 44.}  

 

启动两个模拟器,一个从Eclipse启动,一个用命令行启动:emulator -avd ***;

然后即可发送短信了。

posted on 2012-07-24 20:13  技术蛀虫  阅读(352)  评论(1编辑  收藏  举报