5 votes

Structure de données utilisée pour les messages SMS dans Android

Quelqu'un sait-il quelles structures de données sont utilisées pour stocker les messages dans une application client SMS, et s'il existe une API pour cela ?

J'envisageais peut-être de mettre en œuvre une liste de liens à cette fin, mais si le travail a déjà été fait dans une API, il serait peut-être inutile de consacrer à cette tâche du temps qui pourrait être consacré à la programmation d'autres parties.

Merci beaucoup.

1voto

Ryan Hayes Points 3630

Dans Android, il y a Android.telephony.SmsMessage . Il s'agit de l'objet utilisé dans Android pour stocker un seul message SMS. Vous pouvez le regarder et construire quelque chose qui lui ressemble, ou le réutiliser.

Pour ce qui est de la structure de données pour les stocker, je vous suggère d'utiliser un fichier java.util.List<E> qui vous donne beaucoup plus de flexibilité par rapport à d'autres structures de données, comme un tableau standard[].

Si vous envisagez de stocker vos SMS sur une plus longue période, je vous suggère également de jeter un coup d'œil à la persistance en utilisant la méthode suivante SQLlite, qui fait également partie de la plateforme Android .

1voto

EboMike Points 39257

Quant à l'application de messagerie intégrée, elle stocke tous les messages dans une base de données. Vous pouvez consulter le code source d'Android pour voir ce qu'elle fait, mais je vous déconseille de lire ces données - elles ne font pas partie du SDK officiel, donc elles peuvent changer, ou certains téléphones peuvent ne pas en disposer.

Pour ce qui est de les stocker vous-même, je n'utiliserais pas une liste chaînée. Utilisez une base de données, c'est la meilleure façon de stocker des données persistantes (autres que les petites valeurs individuelles, pour lesquelles vous utilisez SharedPreferences).

1voto

NguyenVanTuMTA Points 21
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]
        }

C'est la structure du contenu du SMS, par exemple, je reçois arg2 et arg11, c'est l'adresse et le contenu du SMS. En utilisant cet exemple, vous pouvez lire tous les SMS stockés dans le téléphone.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X