【Android】Android 发送短信和打电话的方法

发送短信的方法

有两种方法可以实现发送短信,其一是使用intent-startActivity,URI数据格式为"smsto:num",调用的action为Intent.ACTION_SENDTO


Uri uri = Uri.parse("smsto:5554");

Intent it = new Intent(Intent.ACTION_SENDTO, uri);

it.putExtra("sms_body", "你好。。");

startActivity(it);

其二是使用SmsManager:


EditText num=(EditText)findViewById(R.id.num);

EditText content=(EditText)findViewById(R.id.content);

String mobile=num.getText().toString();

String smstext=content.getText().toString();

//获取SmsManager

SmsManager sms=SmsManager.getDefault();

//如果内容大于70字,则拆分为多条

List<String> texts=sms.divideMessage(smstext);

//逐条发送短信

for(String text:texts)

{

sms.sendTextMessage(mobile, null, text, null, null);

}

//发送结果提示

Toast.makeText(SendSMS.this, "发送成功", Toast.LENGTH_LONG).show();

二者的不同在于前者只是调用了发送界面,需要按下Send按钮短信才发送出去,而后者则是直接发送出去。

发送SMS权限的设置:

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

关于SmsManager

SDK中的介绍:Manages SMS operations such as sending data, text, and pdu SMS
messages. Get this object by calling the static method
SmsManager.getDefault().

方法:

public void sendTextMessage (String destinationAddress, String
scAddress, String text, PendingIntent sentIntent, PendingIntent
deliveryIntent)

destinationAddress: 收件人地址

scAddress: 短信中心号码,null为默认中心号码

sentIntent:
当消息发出时,成功或者失败的信息报告通过PendingIntent来广播。如果该参数为空,则发信程序会被所有位置程序检查一遍,这样会导致发送时间延长。

deliveryIntent: 当消息发送到收件人时,该PendingIntent会被广播。pdu数据在状态报告的extended data
("pdu")中。

如果收件人或者信息为空则抛出 IllegalArgumentException 。

public ArrayList<String> divideMessage (String
text)

将大于70字的短信分割为多条。

参数:text    the original message. Must not be
null.

返回:an ArrayList of strings that, in order, comprise the original
message

sendDataMessage 参数与上类似,只是用于发送Data。

sendMultipartTextMessage发送多条短信,发送内容必须是用divideMessage分割好了的。

打电话的方法


打电话的方法类似,所不用的是URI格式为"tel:num",而调用的action为Intent.ACTION_CALL:


EditText edit=(EditText)findViewById(R.id.DialEdit);

String num=edit.getText().toString();

if((num!=null)&&(!"".equals(num.trim())))

{

Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+num));

startActivity(intent);

}

打电话权限的设置:

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

向模拟器发短信打电话的方法

1.启动android emulator,查看标题栏找出端口。一般是android emulator
(5554),其中5554就是端口。

2.打开命令行,输入telnet localhost 5554。程序将会连接到android console,返回

Android Console: type ‘help‘ for a list of commands

OK

模拟电话打入gsm
<call|accept|busy|cancel|data|hold|list|voice|status>

输入gsm call <模拟打进的电话号码>。如:

gsm call 15555218135

模拟短信发送sms send <senderPhoneNumber> <textmessage>

输入sms send <模拟发送短信的电话> <内容>。如:

sms send 15555218135 hello

其中,15555218135为模拟器手机号码。

时间: 2024-10-11 17:38:24

【Android】Android 发送短信和打电话的方法的相关文章

向Android虚拟机发送短信和拨打电话

Android的emulator是已经包含了gsm 模块,可以模拟电话与短信进行调试(就不用花太多冤枉钱) 首先,肯定是打开虚拟机: emulator -avd XXXXXX -scale 0.8& 这两个参数就不用说了,第一个是avd 名称,第二个是显示大小. 然后使用: telnet localhost <port> port 是虚拟机端口号,一般为5554 (可以使用adb devices 查看) 完整的写法是:telnet localhost 5554. 这时,我们就进入了An

android之发送短信程序

首先改写activity_main.xml文件 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/MyLayout" android:orientation="vertical" andr

【转】android 手机发送短信,震动,播放默认铃声

发送短信 @SuppressWarnings("deprecation") public void sendMessage(String phoneNo, String messageContent) {          SmsManager smsManager = SmsManager.getDefault();          smsManager.sendTextMessage(phoneNo,// 接收方的手机号码                             

java 学习第13课,android 实现发送短信的功能

1. 界面布局 界面代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView andro

Android之发送短信和接收验证码

最近项目需求需要发送短信和接收验证码并将验证码显示在输入框中 以下是我的记录 前提---权限 <uses-permission android:name="android.permission.SEND_SMS"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <

Android之发送短信的两种方式

第一:调用系统短信接口直接发送短信:主要代码如下:  /** * 直接调用短信接口发短信 * * @param phoneNumber * @param message */ public void sendSMS(String phoneNumber, String message) { // 获取短信管理器 android.telephony.SmsManager smsManager = android.telephony.SmsManager .getDefault(); // 拆分短信

android 60 发送短信

import android.os.Bundle; import android.app.Activity; import android.telephony.SmsManager; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInst

至Android虚拟机发送短信和拨打电话

Android的emulator是已经包括了gsm 模块,能够模拟电话与短信进行调试(就不用花太多冤枉钱) 首先,肯定是打开虚拟机: emulator -avd XXXXXX -scale 0.8& 这两个參数就不用说了,第一个是avd 名称,第二个是显示大小. 然后使用: telnet localhost <port> port 是虚拟机端口号,一般为5554 (能够使用adb devices 查看) 完整的写法是:telnet localhost 5554. 这时,我们就进入了An

android 打电话 发送短信

1.XML布局 xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity&q