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"