Одной из идей будет использование регулярного выражения для поиска совпадений. Ниже приведен пример того, как использовать регулярное выражение для разбиения строки на 160 символов, но вы можете легко изменить ее с помощью:
Pattern p = Pattern.compile("DefaultZDM\" value=3D\"(.*)\"|ZFRDesignatedRecipient\" value=3D\"(.*)\""
Я уверен, что у меня НЕ правильный шаблон, но это начало. Это будет соответствовать вашим желаемым парам значений, и вы можете назначить их переменным в вашем коде.
protected ArrayList<String> splitMsg(SmsMessage smsMessage) {
ArrayList<String> smt;
Pattern p = Pattern.compile(".{1,160}");
Matcher regexMatcher = p.matcher(smsMessage.getMsgBody());
smt = new ArrayList<String>();
while (regexMatcher.find()) {
smt.add(regexMatcher.group());
}
return smt;
}