Ответ 1
Из того, что я вижу, нет ничего плохого в вашем запросе.
Существует несколько причин, по которым m_size может быть нулевым. null - это значение по умолчанию для этого столбца при создании таблицы, см. MmsSmsDatabaseHelper. По умолчанию приложение SMS, вероятно, вызывает PduPersister.persist при сохранении PDU, а размер сообщения вставляется . Тот факт, что вы сохранили извлеченные PDU, но не m_size, указывает, что заголовок не содержит этого значения. Если у вас есть внедренное устройство, вы можете проверить содержимое заголовка с помощью tcpdump и Wireshark. Я предполагаю, что приложение SMS по умолчанию постоянно сохраняло PDU и части, но можно проверить тип сообщений MMS в папке "Входящие". При получении MMS вы сначала получите NOTIFICATION-IND, который уведомляет, что есть MMS для загрузки, и содержит некоторую базовую информацию. Это должно сохраняться приложением по умолчанию. Затем он должен загрузить полное MMS и сохранить RETRIEVE-CONF. Размер сообщения является частью NotificationInd. Когда приложение SMS сохраняет RETRIEVE-CONF, оно может перезаписать/удалить NOTIFICATION-IND, а m_size будет потерян. Чтобы проверить это, вы можете отключить автоматическую загрузку MMS (если приложение поддерживает его) или просто отключить любые данные, поскольку уведомление будет доставлено в виде сообщения WAP Push.