调用系统短信页面

本文介绍了一种通过Android Intent启动系统短信应用的方法,并设置了短信接收方号码及短信内容。
/**
* 跳转到系统发送短信页面
*/
private void goSystemSMS() {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.putExtra("address", "186...");
intent.putExtra("sms_body", "短信内容");
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);
}
在 Android 开发中,要实现点击 `TextView` 中“运营商直接查询”几个字跳转系统短信页面,可以借助 `SpannableString` 和 `ClickableSpan` 来实现。以下是示例代码: ```java import android.content.Intent; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.text.SpannableString; import android.text.Spanned; import android.text.TextPaint; import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.view.View; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = findViewById(R.id.tv_tips); String fullText = "提示:查询失败可能由于运营商渠道维护,可通过运营商直接查询"; String clickableText = "运营商直接查询"; SpannableString spannableString = new SpannableString(fullText); int startIndex = fullText.indexOf(clickableText); if (startIndex != -1) { int endIndex = startIndex + clickableText.length(); ClickableSpan clickableSpan = new ClickableSpan() { @Override public void onClick(View widget) { // 跳转系统短信页面 Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse("smsto:")); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setColor(Color.BLUE); // 设置文字颜色为蓝色 ds.setUnderlineText(false); // 去掉下划线 } }; spannableString.setSpan(clickableSpan, startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } textView.setText(spannableString); textView.setMovementMethod(LinkMovementMethod.getInstance()); // 使点击生效 } } ``` 在上述代码中,首先创建了一个 `SpannableString` 对象,然后通过 `indexOf` 方法找到“运营商直接查询”的起始和结束位置。接着创建一个 `ClickableSpan` 对象,重写 `onClick` 方法,在该方法中创建一个跳转系统短信页面的 `Intent` 并启动。重写 `updateDrawState` 方法来设置文字颜色和去掉下划线。最后将 `SpannableString` 设置给 `TextView`,并调用 `setMovementMethod` 方法使点击生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值