android 自动发短信

sancaiodm Android应用 2021-08-25 1855 0

      利用类 SmsManager 发送信息, smsManager 为 SmsManager 一个默认的实例. 

       SmsManager smsManager = SmsManager.getDefault(); 

  smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)  

  destinationAddress: 收件人号码 

  scAddress: 短信中心服务号码, 这里设置为null 

  text: 发送内容

  sentIntent: 发送短信结果状态信号(是否成功发送),new 一个Intent , 操作系统接收到信号后将广播这个Intent.此过程为异步.

  deliveryIntent: 对方接收状态信号(是否已成功接收).

  由于需要用到系统发送信息功能, 要在AndroidMainfest.xml 加入 <uses-permission android: name="android.permisson.SEND_SMS" />


                        android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();

                        ArrayList<String> messages = smsManager.divideMessage(content);

                       /* for (String text : messages) {

                            smsManager.sendTextMessage(smsNumber, null, text, null, null);//短信内容少于70个字符  

                        }*/

                        smsManager.sendMultipartTextMessage(smsNumber, null, messages, null, null);


//获取SmsManager对象,下面的判断可有可无,可又直接返回 SmsManager.getDefault();

private static SmsManager (subId) {
    (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
        SmsManager.getSmsManagerForSubscriptionId(subId);//获取指定卡槽的SmsManager对象  
    } {
        SmsManager.getDefault();
    }
}

自动发送信息完整功能代码:

    public static void AutoSentSMS(Context context,String address,String messageBody){

        SubscriptionManager mManager = context.getSystemService(SubscriptionManager.class);

        final List<SubscriptionInfo> subscriptions = mManager.getActiveSubscriptionInfoList();

        int subId = -1;

        if(subscriptions != null && subscriptions.size() > 0){

            subId = subscriptions.get(0).getSubscriptionId();

        }else{

            android.util.Log.e(TAG,"Please insert SIM card");

            return;

        }

        SmsManager smsManager = SmsManager.getDefault();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {

            smsManager = SmsManager.getSmsManagerForSubscriptionId(subId);

        }

        ArrayList<String> messages = smsManager.divideMessage(messageBody);

        smsManager.sendMultipartTextMessage(address, null, messages, null, null);

        android.util.Log.e(TAG,"AutoReplySOSSMS end");

    }


评论