Android 调用打电话和发短信功能

时间:2022-11-09 23:16:25

Android 调用打电话和发短信功能


1.打电话

可以自己写界面,在button的单击事件中添加如下代码即可:

   Intent intent = new Intent();
   intent.setAction("Android.intent.action.CALL");
   intent.setData(Uri.parse("tel:"+ mobile));//mobile为你要拨打的电话号码,模拟器中为模拟器编号也可

   startActivity(intent);

需要添加打电话权限:

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

 

2.发短信

和打电话差不多,在button的单击事件中添加如下代码:

    SmsManager smsManager = SmsManager.getDefault();
    ArrayList<String> texts = smsManager.divideMessage(content);//拆分短信,短信字数太多了的时候要分几次发
    for(String text : texts){
     smsManager.sendTextMessage(mobile, null, text, null, null);//发送短信,mobile是对方手机
    }

对应发短信权限:

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

 

附:调用系统 发送短信 和 已发送短信界面

1. 调用系统发送短信界面(并指定短信接收人和短信内容

Uri smsToUri = Uri.parse("smsto:10086");    
    Intent mIntent = new Intent( android.content.Intent.ACTION_SENDTO, smsToUri );  
    mIntent.putExtra("sms_body", "The SMS text");  
    startActivity( mIntent );

 

 

2. 调用系统已发送短信界面

   Uri  smsUri = Uri.parse("smsto:106900867734");
   Intent intent = new Intent(Intent.ACTION_MAIN, smsUri)

  intent.setType("vnd.android-dir/mms-sms");
   startActivity(intent);

这里我们使用action_main 根据api显示提示

android.content..ACTION_MAIN = "android.intent.action.MAIN"

 

public static finalACTION_MAIN

Since:

Activity Action: Start as a main entry point, does not expect to receive data.

Input: nothing

Output: nothing

Constant Value:"android.intent.action.MAIN"

 

 

下面这种操作其实不推荐,因为传递的smsto并无法接收。

   Uri  smsUri = Uri.parse("smsto:106900867734");
   Intent intent = new Intent(Intent.ACTION_VIEW,smsUri)

  intent.setType("vnd.android-dir/mms-sms");
   startActivity(intent);

 

根据api提示:

android.content..ACTION_VIEW = "android.intent.action.VIEW"

 

public static finalACTION_VIEW

Since:

Activity Action: Display the data to the user. This is the most common action performed on data -- it is the generic action you can use on a piece of data to get the most reasonable thing to occur. For example, when used on a contacts entry it will view the entry; when used on a mailto: URI it will bring up a compose window filled with the information supplied by the URI; when used with a tel: URI it will invoke the dialer.

Input:is URI from which to retrieve data.

Output: nothing.

Constant Value:"android.intent.action.VIEW"