消息字符大于160,在Samsung S3 4.4.2上发生一般性故障

时间:2017-06-02 09:22:15

标签: android smsmanager

我目前正在使用app发送消息和日志消息发送状态。我正在使用以下代码执行此操作我正在调用sendSMS函数,每个电话号码的延迟为2秒。我已经测试了很多手机和操作系统版本,它在nexus,lg和samsung中工作得很好但是它在三星S3中引起了操作系统版本4.4.2的问题。当我向超过一个电话号码发送超过160多个字符的消息时,它仅成功发送到第一个电话号码并将其他电话号码发送到通用故​​障。需要注意的是,只有当我发送的字符大于160的消息时才会出现这种情况。 任何帮助将不胜感激

  public void sendSMS(final String message, String phoneNo) {
    try {

        String SENT = "com.ebryx.smscustommessagegeneration"+""+System.currentTimeMillis()+""+((int)this.getmMessageId());
        Intent intentMessageASendStatus = new Intent(SENT);

        final PendingIntent pi = PendingIntent.getBroadcast(App.getContext(),  ((int)this.getmMessageId()),
                intentMessageASendStatus, PendingIntent.FLAG_CANCEL_CURRENT);
        ArrayList<PendingIntent> sentPI = new ArrayList<PendingIntent>(){{add(pi);}};

        App.getContext().registerReceiver(new BroadcastReceiver(){
            @Override
            public void onReceive(Context arg0, Intent arg1) {

                DatabaseManager dm = new DatabaseManager();
                SendMessageStatus messageStatus = new SendMessageStatus();

                switch (getResultCode())
                {
                    case Activity.RESULT_OK:
                        Log.i("tag","sent successfully ");

                        break;
                    case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                        Log.i("tag","Generic Failure");

                        break;

                    case SmsManager.RESULT_ERROR_NO_SERVICE:

                        Log.i("tag","No service failure");

                        break;
                    case SmsManager.RESULT_ERROR_NULL_PDU:

   break;
                    case SmsManager.RESULT_ERROR_RADIO_OFF:

                        Log.i("tag","Airplane mode failure");

                        break;
                }
            }
        }, new IntentFilter(SENT));

        SmsManager smsManager = SmsManager.getDefault();
        ArrayList<String> parts = smsManager.divideMessage(message);
        smsManager.sendMultipartTextMessage(phoneNo, null, parts,sentPI, null);

    } catch (Exception e) {
        e.printStackTrace();
        Log.i("Message Sent", "NOT Send");
        Utils.writeOnLogFile("Message Not Sent: " + message);
    }
}

0 个答案:

没有答案