Android实现手动拨打电话,即点击后跳转到手机默认电话号码输入页面,可以将相应号码传送过去:

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:10086");startActivity(intent);

Android实现自动拨打电话,即点击后直接拨通电话,显示为通话中的页面:

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:10086"));   startActivity(intent);  

Android实现手动发送短信,即点击后 跳转到发送短信的页面,可以将把相应内容传送过去:

Uri uri = Uri.parse("smsto:10010");          Intent it = new Intent(Intent.ACTION_SENDTO, uri);          it.putExtra("sms_body", "102");          activity.startActivity(it);

Android实现自动发送短信,即点击后直接发送短信到设置的号码:

方法一:

package com.example.smstest;import java.util.List;import android.app.Activity;import android.app.PendingIntent;import android.content.Intent;import android.os.Bundle;import android.telephony.SmsManager;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button btn;private String strSms = "";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button) findViewById(R.id.send);strSms = "在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager 之后应该用 android.telephony.SmsManager;";btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {/* * 在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager 之后应该用 * android.telephony.SmsManager; */// 获取系统默认的短信管理器SmsManager smsManager = SmsManager.getDefault();PendingIntent sentIntent = PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(), 0);// 如果字数超过70,需拆分成多条短信发送// 按照每条短信最大字数来拆分短信if (strSms.length() > 70) {List msgs = smsManager.divideMessage(strSms);for (String msg : msgs) {/* * 发送短信 *  * smsManager.sendTextMessage(destinationAddress, * scAddress, text, sentIntent, deliveryIntent) *  * -- destinationAddress:目标电话号码 *  * -- scAddress:短信中心号码,测试可以不填 *  * -- text: 短信内容 *  * -- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 * --> 后续处理 即,这个意图包装了短信发送状态的信息 *  * -- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 --> * 返回对方是否收到这个信息 --> 后续处理 * 即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。 */smsManager.sendTextMessage("18352513553", null, msg,sentIntent, null);}} else {smsManager.sendTextMessage("18352513553", null, strSms,sentIntent, null);}}});}}

方法二:

//直接调用短信接口发短信SmsManager smsManager = SmsManager.getDefault();List divideContents = smsManager.divideMessage(content);  for (String text : divideContents) {  smsManager.sendTextMessage("150xxxxxxxx", null, text, sentPI, deliverPI);  }

处理返回的发送状态

String SENT_SMS_ACTION = "SENT_SMS_ACTION";Intent sentIntent = new Intent(SENT_SMS_ACTION);PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, sentIntent,        0);// register the Broadcast Receiverscontext.registerReceiver(new BroadcastReceiver() {    @Override    public void onReceive(Context _context, Intent _intent) {        switch (getResultCode()) {        case Activity.RESULT_OK:        Toast.makeText(context,        "短信发送成功", Toast.LENGTH_SHORT)        .show();        break;        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:        break;        case SmsManager.RESULT_ERROR_RADIO_OFF:        break;        case SmsManager.RESULT_ERROR_NULL_PDU:        break;        }    }}, new IntentFilter(SENT_SMS_ACTION));
处理返回的接收状态

String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";// create the deilverIntent parameterIntent deliverIntent = new Intent(DELIVERED_SMS_ACTION);PendingIntent deliverPI = PendingIntent.getBroadcast(context, 0,       deliverIntent, 0);context.registerReceiver(new BroadcastReceiver() {   @Override   public void onReceive(Context _context, Intent _intent) {       Toast.makeText(context,  "收信人已经成功接收", Toast.LENGTH_SHORT)  .show();   }}, new IntentFilter(DELIVERED_SMS_ACTION));


更多相关文章

  1. Android 短信列表的时间显示
  2. Android 网络状态实时检测
  3. Android沉浸式状态栏的开发
  4. Android如何设置顶部状态栏颜色(主题)
  5. android横竖屏切换、键盘推出状态改变的处理
  6. [Android] 获取系统顶部状态栏(Status Bar)与底部导航栏(Navigat
  7. Android短信功能实现源码
  8. Android编程获取网络连接状态及调用网络配置界面
  9. Android沉浸式(设置状态栏颜色)

随机推荐

  1. Windows系统中完全卸载MySQL数据库实现重
  2. 设置Mysql5.6允许外网访问的详细流程分享
  3. mac 装5.6版本mysql 设置密码的简易方法
  4. Mysql数据库从5.6.28版本升到8.0.11版本
  5. Mysql 常用的时间日期及转换函数小结
  6. Mysql注入中的outfile、dumpfile、load_f
  7. MYSQL的存储过程和函数简单写法
  8. win10 下安装mysql服务器社区版本mysql 5
  9. 教你如何在Mac上安装mysql数据库
  10. MySql中如何使用 explain 查询 SQL 的执