Accesso all'archivio sms

Buongiorno a tutti,
vorrei porvi la seguente domanda. Avrei bisogno di sapere se è possibile creare un’applicazione che acceda all’archivio degli sms, in modo da poter gestire una sorta di Backup. Voglio iniziare questo progetto ma non sono sicuro che sia possibile entrare nell’archivio SMS.
Qualcuno ha informazioni più precise? Sapreste anche dirmi come?
Grazie

gli sms li trovi qui: /private/var/mobile/Library/SMS

mi stai dicendo che posso accedere a tale archivio utilizzando le librerie messa a disposizione nell SDK?

scusami non avevo capito bene la domanda, questo non so dirtelo sinceramente, ma su appstore ci sono alcune app relative agli sms, ma nessuna con le funzioni che vorresti implementare tu…

Si infatti…appunto per questo mi è venuto qualche dubbio…cercavo di avere qualche info in piu da utenti più esperti di me sulle restrizioni dell SDK.
Grazie.

si lo puoi fare tranquillamente senza problemi :smiley:
è una cosa molto comune, puoi anche cancellare messaggi singolarmente (se ti servono altre info in più ti passo i comandi sql da usare. ma suppongo tu sia capace).

Comuque una app del genere non la potrai rilasciare su appstore per via della regola sulle sandbox.

Ti ringrazio per la gentile risposta!!
Guarda sono davvero nuovo del mondo Apple e la mia è soltanto pura curiosità. Ho intenzione di realizzare un app per il backup degli SMS e comunque su statistiche di invio e ricezione. Sono giorni ormai che stufio e faccio tutorial.
Mi faresti un grandissimo favore se riuscissi a passarmi del codice da guardare.
Grazie!

Dovrai leggere e scrivere il file /private/var/mobile/Library/SMS/sms.db

Trovi degli esempi qui: iPhone SDK Tutorial: Reading data from a SQLite Database | dBlog.com.au

// Open the database from the users filessytem
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
// Setup the SQL Statement and compile it for faster access
const char *sqlStatement = “select * from animals”;
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

Nel file sms.db in particolare prima di poter scrivere dovrai anche cancellare i trigger presenti lanciando queste query:

drop trigger delete_message;
drop trigger delete_newest_message;
drop trigger insert_newest_message;
drop trigger insert_unread_message;
drop trigger mark_message_read;
drop trigger mark_message_unread;

e poi rimetterli una volta ultimata la scrittura:

CREATE TRIGGER delete_message AFTER DELETE ON message WHEN NOT read(old.flags) BEGIN UPDATE msg_group SET unread_count = (SELECT unread_count FROM msg_group WHERE ROWID = old.group_id) - 1 WHERE ROWID = old.group_id; END;
CREATE TRIGGER delete_newest_message AFTER DELETE ON message WHEN old.ROWID = (SELECT newest_message FROM msg_group WHERE ROWID = old.group_id) BEGIN UPDATE msg_group SET newest_message = (SELECT ROWID FROM message WHERE group_id = old.group_id AND ROWID = (SELECT max(ROWID) FROM message WHERE group_id = old.group_id)) WHERE ROWID = old.group_id; END;
CREATE TRIGGER insert_newest_message AFTER INSERT ON message WHEN new.ROWID >= IFNULL((SELECT MAX(ROWID) FROM message WHERE message.group_id = new.group_id), 0) BEGIN UPDATE msg_group SET newest_message = new.ROWID WHERE ROWID = new.group_id; END;
CREATE TRIGGER insert_unread_message AFTER INSERT ON message WHEN NOT read(new.flags) BEGIN UPDATE msg_group SET unread_count = (SELECT unread_count FROM msg_group WHERE ROWID = new.group_id) + 1 WHERE ROWID = new.group_id; END;
CREATE TRIGGER mark_message_read AFTER UPDATE ON message WHEN NOT read(old.flags) AND read(new.flags) BEGIN UPDATE msg_group SET unread_count = (SELECT unread_count FROM msg_group WHERE ROWID = new.group_id) - 1 WHERE ROWID = new.group_id; END;
CREATE TRIGGER mark_message_unread AFTER UPDATE ON message WHEN read(old.flags) AND NOT read(new.flags) BEGIN UPDATE msg_group SET unread_count = (SELECT unread_count FROM msg_group WHERE ROWID = new.group_id) + 1 WHERE ROWID = new.group_id; END;

20

Is there any one person is missingReally the end of theOne took off with youWith feelings of dewQuiet

qualcuno ha documentazione riguardo la struttura del database sms.db dell’iphone? il modo in cui va riempito. mi interessa sapere come vanno aggiornate le varie tabelle per inserire nuovi sms a mano tramite sql.

Ho riletto solo ora questo vecchio topic, posto comunque il link perchè è davvero interessante:
http://gwyneth.blogspot.com/2009/07/notes-on-iphone-databases.html