Android中的代码发送短信主要会用到SmsManager这个类,以下是一个简单的示例:
import android.app.Activity;
import android.telephony.SmsManager;
import android.view.View;
public class MainActivity extends Activity {
public void sendSMS(View view) {
String phoneNum = "1234567890"; // 目标手机号码
String message = "Hello, this is a test message!"; // 短信内容
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNum, null, message, null, null);
}
}
注意事项:发送短信权限需要在AndroidManifest.xml文件中添加:
<uses-permission android:name="android.permission.SEND_SMS"/>
另外,由于短信发送涉及用户隐私和费用,所以需要动态请求用户权限。在调用发送短信的代码前,你需要先进行权限请求的代码,示例如下:
// 检查是否已经获得了权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS)
!= PackageManager.PERMISSION_GRANTED) {
// 如果应用之前请求过此权限但用户拒绝了请求,此方法将返回 true。
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.SEND_SMS)) {
// 显示一个对话框解释为什么需要这个权限,再次请求权限
} else {
// 直接请求权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.SEND_SMS},
MY_PERMISSIONS_REQUEST_SEND_SMS);
}
}
当用户响应你的权限请求时,系统将调用应用的 onRequestPermissionsResult() 方法,传入用户的响应。你的应用必须覆盖此方法以了解是否已获得某项权限。此方法返回一个权限请求结果的数组,示例如下:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case MY_PERMISSIONS_REQUEST_SEND_SMS:{
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(getApplicationContext(), "SMS sent.",
Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getApplicationContext(),
"SMS faild, please try again.", Toast.LENGTH_LONG).show();
return;
}
}
}
}
以上内容仅一个基础的发送短信的代码示例,实际使用中可能需要处理更多复杂的情况,如短信内容过长需要拆分、处理短信发送结果的反馈、权限请求对话框的设计等。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/171102.html