在Android应用程序中,大部分都需要向指定号码发送验证码功能
所有的代码块都是用的手机编写,因此可能排版有问题,这篇文章只是为了熟悉Markdown写的
权限获得
在应用AndroidManifest.xml
中声明发送短信的权限
<uses-permission android:name="android.permission.SEND_SMS"/>
布局文件添加按钮
在布局文件中添加按钮
<Button
android:id="@+id/button_send_sms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送短信" />
设置按钮点击事件
在MainActivity.java
中设置按钮的点击事件
Button buttonSendSms = findViewById(R.id.button_send_sms);
buttonSendSms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendSms("1234567890");
}
});
上面的Java1234567890
更换为接收短信的号码
发送短信
设置发送短信动作
private void sendSms(String phoneNumber) {
Uri uri = Uri.parse("smsto:" + phoneNumber);
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
} else {
Toast.makeText(this, "没有可用的应用程序", Toast.LENGTH_SHORT).show();
}
}
请求发送短信时的权限
private static final int MY_PERMISSIONS_REQUEST_SEND_SMS = 1;
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.SEND_SMS)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.SEND_SMS},
MY_PERMISSIONS_REQUEST_SEND_SMS);
} else {
sendSms("1234567890");
}
上面的Java1234567890
更换为接收短信的号码
处理请求结果
用onRequestPermissionsResult
处理用户的响应
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions,
int[] grantResults) {
if (requestCode == MY_PERMISSIONS_REQUEST_SEND_SMS) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
sendSms("1234567890");
} else {
Toast.makeText(this, "需要短信权限", Toast.LENGTH_SHORT).show();
}
}
}