短信管理器
短信管理器 : 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 ***;
然后即可发送短信了。