[android] 11_短信发送器

Android 4.0

短信发送器

短信界面。
Uri uri = Uri.parse("smsto:" + mobilePhoneNumber);
        Intent ii = new Intent(Intent.ACTION_SENDTO, uri);// 绿色文字就是启动发送短信窗口
        String smsBody = "";
        ii.putExtra("sms_body", smsBody);
        startActivity(ii);

短信发送器

一、效果图:

二、技术点

1、布局文件    activity_main.xml

a)    android:inputType="phone" 防止用户输入字母

b)    android:inputType="textMultiLine" 初始化就有5行
      android:lines="5"
 
2、MainActivity.java
TextUtils.isEmpty(smsNmber) google提供的用于判断字符串是否为null或者为"",空为true
底层实现:
public static boolean isEmpty(CharSequence str) {
        if (str == null || str.length() == 0)
            return true;
        else
            return false;
}
 
3、发送短信、彩信
SmsManager smsManager = SmsManager.getDefault();//SmsManager构造器是私有化的
发送短信:
smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)
//各个参数:短信路标地址,源地址(我国国情为null),发送的文本内容,发送反馈,对方接收反馈
发送彩信:
smsManager.sendDataMessage(destinationAddress, scAddress, destinationPort, data, sentIntent, deliveryIntent)
 
如果一条短信超出大小,就会发送不出去,google也为我们设计好了
ArrayList<String> divideMessage = smsManager.divideMessage(smsContent);//如果短信内容过长,提示发出去,但对方接收不到信息。
    for (String message : divideMessage) {
        smsManager.sendTextMessage(smsNmber, null, message, null , null);
        Toast.makeText(this"发送成功", Toast.LENGTH_LONG).show();
}
 

 

Caused by: java.lang.SecurityException: Sending SMS message: User 10043 does not have android.permission.SEND_SMS.