Структура данных, используемая для SMS-сообщений в Android

Кто-нибудь знает, какие структуры данных используются для хранения сообщений в клиентском приложении SMS и существует ли для этого API.

Возможно, я рассматривал реализацию списка ссылок для этой цели, но если работа уже была проделана в API, то, возможно, было бы ненужно выделять время на задачу, которую можно было бы потратить на программирование других частей.

Большое спасибо


person Darius    schedule 05.05.2010    source источник


Ответы (3)


В Android есть android.telephony.SmsMessage. Это объект, используемый в Android для хранения одного SMS-сообщения. Вы можете посмотреть на это и построить что-то похожее или использовать его повторно.

Что касается структуры данных для их хранения, я бы посоветовал вам использовать файл java. util.List‹E›, что дает вам гораздо больше гибкости по сравнению с некоторыми другими структурами данных, такими как стандартный массив[].

Если вы хотите хранить свои SMS-сообщения в течение более длительного периода времени, я бы также посоветовал вам взглянуть на сохраняемость с помощью SQLlite, который также является частью платформы Android.

person Ryan Hayes    schedule 29.05.2010

Что касается встроенного приложения для обмена сообщениями, оно хранит все сообщения в базе данных. Вы можете проверить исходный код Android, чтобы увидеть, что он делает, но я бы рекомендовал не читать эти данные — они не являются частью официального SDK, поэтому они могут измениться, или на некоторых телефонах их может не быть.

Что касается его хранения самостоятельно, я бы не стал использовать связанный список. Используйте базу данных, это предпочтительный способ хранения любых постоянных данных (кроме небольших отдельных значений, для которых вы используете SharedPreferences).

person EboMike    schedule 08.07.2010

Uri uriSMS=Uri.parse("Content://sms/inbox");
        Cursor cur=getContentResolver().query(uriSMS,null,null,null,null);
        String[] sender=new String[100];String[] content=new String[100];int ct=0;
        While(cur.moveToNext()){
            sender[ct]=cur.getString(2);//arg2: this is address
            content[ct]=cur.getString(11);//arg11: this is body of SMS
//[0: _id,1: thread_id,2: address,3: person,4: date,5: protocol,6: read,7: status,8: type,9: reply_path_present,10: subject,11: body,12: service_center,13: locked,14: error_code,15: seen]
        }

Это структура содержимого в SMS, например, я получаю arg2 и arg11, это адрес и содержимое sms. Используя этот пример, вы можете прочитать все SMS, хранящиеся в телефоне.

person NguyenVanTuMTA    schedule 18.07.2013