android应用发短信
程序员文章站
2022-04-26 13:30:43
...
首选在AndroidManifest.xml 申请权限
<uses-permission android:name="android.permission.SEND_SMS"/>
SMSActivity.java
package com.example.a20200712;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.util.ArrayList;
public class SMSActivity extends AppCompatActivity {
private static final int SEND_SMS = 100;
private EditText sms_layout_content;
private EditText sms_layout_number;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sms_layout);
sms_layout_number = findViewById(R.id.sms_layout_number);
sms_layout_content = findViewById(R.id.sms_layout_content);
}
public void sendBtn(View view) {
//判断Android版本是否大于23
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int checkCallPhonePermission = ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE);
if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, SEND_SMS);
return;
} else {
sendSMSS();
//已有权限
}
} else {
//API 版本在23以下
}
}
/**
* 注册权限申请回调
*
* @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) {
sendSMSS();
} else {
// Permission Denied
Toast.makeText(SMSActivity.this, "CALL_PHONE Denied", Toast.LENGTH_SHORT).show();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
//发送短信
private void sendSMSS() {
String content = sms_layout_content.getText().toString().trim();
String phone = sms_layout_number.getText().toString().trim();
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(SMSActivity.this, "发送成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "手机号或内容不能为空", Toast.LENGTH_SHORT).show();
}
}
}
sms_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:id="@+id/sms_layout_number"
android:hint="请输入手机号">
</EditText>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/sms_layout_content"
android:inputType="textMultiLine"
android:minLines="7"
android:hint="短信内容">
</EditText>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20dp"
android:onClick="sendBtn"
android:text="发送短信"></Button>
</LinearLayout>
上一篇: JavaScript教程之初识JavaScript
下一篇: PHP程序猿必备的七种武器