代码之家  ›  专栏  ›  技术社区  ›  Pouya Samie

安卓系统-发送许多由多个部分组成的消息将错过其中一些消息

  •  2
  • Pouya Samie  · 技术社区  · 8 年前

    我是android开发新手。我想从我的后台服务发送一些SMS消息,它将从服务器获取一些数据并将其发送给一些客户端。到目前为止,它工作得很好,直到他们在短信中添加了一些描述。从那时起,我的一些信息就没有被发送。

    以下是我到目前为止所做的:

    for (MessageData messageData : result) {
        String message = messageData.getBody();
        String recipient = messageData.getRecipient();
    
        int parts_size = smsManager.divideMessage(message).size();
        if (parts_size > 1) {
            ArrayList<String> parts = smsManager.divideMessage(message);
                    smsManager.sendMultipartTextMessage(recipient, null, parts, null, null);
        } else {
            smsManager.sendTextMessage(recipient, null, message, null, null);
        }
    }
    

    我不知道android是否能够处理发送消息的循环,或者我是否做错了什么。

    1 回复  |  直到 8 年前
        1
  •  2
  •   albert c braun    8 年前

    我试着跟随并使用 Mike M's very insightful guidance and code

    SmsService.java is a gist on GitHub 因为粘贴在这里有点大。

    我的目标之一是看看是否可以将必要的功能放入一个android组件中。它已经用少量消息进行了测试,但仍处于实验阶段。(例如,它避免使用广播接收器,依赖于系统发送的服务STARTID的唯一性,严重依赖于表示消息的意图等。)

    该类有三种静态方法用于设置、发送消息和拆卸:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        SmsService.setup(this);
    }
    
    private void sendMyMessages() {
        SmsService.send(this, recipient, sender, "the message text");
    }
    
    @Override
    protected void onDestroy() {     
        SmsService.teardown(this);
        ...
    }