发送短信
自定义发送短信步骤
1、在Manifest.xml里添加权限
//打电话的权限
<uses-permission android:name="android.permission.CALL_PHONE" />
//发送短信的权限
<uses-permission android:name="android.permission.SEND_SMS"/>
2、获取控件并添加响应事件
1、先声明各控件然后再初始化
2、显示的提醒用户是否允许Apk使用短信发送的功能
```
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, 1);
```
3、添加响应事件(setOnClickListener)
I、获取短信管理者
```
SmsManager manager=SmsManager.getDefault();
```
II、拿到短信的内容
```
String text=etSms.getText().toString();
```
III、遍历list里面的所有数值
```
List<String>list=manager.divideMessage(text);
//遍历
for(String sms_text:list){
manager.sendTextMessage(etNum.getText().toString(),null,sms_text,null,null);
}
```
####跳转到系统短信里
跳转到系统打电话里
源码在此:
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.List;
public class MainActivity extends AppCompatActivity {
//自定义发送短信步骤
//1、添加权限
//2、获取控件并添加响应事件
private EditText etNum;
private EditText etSms;
private Button btnSend;
private Button btn;
private Button btnPhone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//显示的提醒用入户是否允许Apk使用短信发送功能
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS},1 );
etNum = (EditText) findViewById(R.id.main_phoneNum);
etSms = (EditText) findViewById(R.id.main_sms);
btnSend = (Button) findViewById(R.id.main_sendSms);
btn = (Button) findViewById(R.id.btn);
btnPhone= (Button) findViewById(R.id.btnphone);
//添加响应事件
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//1、获取短信管理者
SmsManager manager = SmsManager.getDefault();
//2、发送短信
//注意:如果短信的内容长出70,那么70以后的字将会被截取掉,所以需要对文本进行处理
//拿到短信的内容
String text = etSms.getText().toString();
//调用短信管理者的方法对短信进行分割
List<String> list = manager.divideMessage(text);
//遍历list里面的所有数值
for (String sms_text : list) { //增强for循环
//发送短信
manager.sendTextMessage(etNum.getText().toString(), null, sms_text, null, null);
}
Toast.makeText(MainActivity.this, "消息已发出", Toast.LENGTH_SHORT).show();
}
});
//跳转到系统短息里
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+etNum));
intent.putExtra("sms_body", etSms.getText().toString());
startActivity(intent);
}
});
//跳到系统打电话里
btnPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
Uri data = Uri.parse("tel:" + etNum);
intent.setData(data);
startActivity(intent);
}
});
}
}