android 拨打电话与发送短信

       通过调用android系统提供的电话与短信功能,可以简单的实现发送短信,拨打电话,但是必须在AndroidManifest.xml里面配置相应权限,定位到

1 <application 
2
3 /application>

标签外面一层,拨打电话的权限为android.permission.CALL_PHONE,发送短信的权限为android.permission.SEND_SMS.

而内部代码主要是写按钮的单击事件就可以了,覆写 onClick()事件

发送短信:

复制代码
 1     @Override
2 public void onClick(View v)
3 {
4 // 管理短信的操作类,例如发送数据,文本,通过调用getDefault()方法获得对象;
5 SmsManager smsManager = SmsManager.getDefault();
6 // 如果短信内容多长,将自动分割为多条信息,存放在ArrayList里面;
7 ArrayList<String> textsArrayList = smsManager.divideMessage(conEditText.getText()
8 .toString());
9 // 利用for循环将短信发送出去;
10 for (String text : textsArrayList)
11 {
12 // 实现发送文本短信的函数是smsManager的sendTextMessage()方法
13 smsManager.sendTextMessage(phoneEditText.getText().toString(), null, text, null, null);
14 }
15 // 这句话适用于提示用户短信已发送成功的
16 // Toast.makeText(MySMSActivity.this, R.string.success,
17 // Toast.LENGTH_LONG).show();
18 }
复制代码

拨打电话:

复制代码
1     @Override
2 public void onClick(View v)
3 {
4 String phonenum = phoneEditText.getText().toString();
5 // 使用Intent
6 Intent intent = new Intent("android.intent.action.CALL", Uri.parse("tel:" + phonenum));
7 // 开启广播意图
8 startActivity(intent);
9 }
复制代码
1
打电话和发短信都是调用Android系统服务,但是在实现的代码上是不同。在调用smsManager.divideMessage()时发现发送短信的函数还有两个,查看帮助文档知道分别是sendDataMessage 和sendMultipartTextMessage,他们的声明和作用如下:
public void sendDataMessage (String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent)

基于短信发送一个数据到一个特定的应用程序端口(Send a data based SMS to a specific application port.)

public void sendMultipartTextMessage (String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents)

基于短信发送多个文本。事先已将短信内容分割为多个部分(Send a multi-part text based SMS. The callee should have already divided the message into correctly sized parts by calling divideMessage.)

具体怎么用的还没研究。

 

posted @   小文字  阅读(1371)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示