PK创意闹新春,我正在参加「春节创意投稿大赛」,详情请看:春节创意投稿大赛
背景
新年到了,拜年是必不可少的,有人打电话,有人发微信,也有人发短信,通过各种方式表达自己的祝福,这次简单实现是个发送短信的小功能,祝大家新年快乐
实现
public class SendSMSActivity extends AppCompatActivity {
private static final int SEND_SMS = 10086;
private ActivitySendSmsActivityBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivitySendSmsActivityBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
binding.send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
requestPermission();
}
});
}
private void requestPermission() {
//判断Android版本是否大于23
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int checkCallPhonePermission = ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS);
if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, SEND_SMS);
return;
} else {
sendSMS();
//已有权限
}
} else {
//API 版本在23以下
sendSMS();
}
}
//发送短信
private void sendSMS() {
String content = "恭迎寅虎乾坤啸,贺送金牛耕耘勤。新年飘下世纪雪,春风遍拂华夏人。";
String phone = "10086";
if (!TextUtils.isEmpty(content) && !TextUtils.isEmpty(phone)) {
SmsManager manager = SmsManager.getDefault();
ArrayList<String> strings = manager.divideMessage(content);
for (int i = 0; i < strings.size(); i++) {
manager.sendTextMessage(phone, null, content, null, null);
}
Toast.makeText(SendSMSActivity.this, "发送成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "手机号或内容不能为空", Toast.LENGTH_SHORT).show();
return;
}
}
/**
* 注册权限申请回调
*
* @param requestCode 申请码
* @param permissions 申请的权限
* @param grantResults 结果
*/
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case SEND_SMS:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
sendSMS();
} else {
// Permission Denied
Toast.makeText(SendSMSActivity.this, "CALL_PHONE Denied", Toast.LENGTH_SHORT).show();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}
发送短信中的sendTextMessage方法
sendTextMessage(String destinationAddress, String scAddress, String text,PendingIntent sentIntent, PendingIntent deliveryIntent)
参数介绍:
destinationAddress: 收件人的号码
scAddress: 短信中心服务号码, 这里设置为null
text: 发送短信的内容
sentIntent: 发送短信结果状态信号(是否成功发送),new 一个Intent , 操作系统接收到信号后将广播这个Intent.此过程为异步.
deliveryIntent: 对方接收状态信号(是否已成功接收).
最后祝各位xdm 虎年大吉,身体健康,心想事成,万事如意!