iPhone SMS Fixer

Anche l’iPhone ha i suoi bug. Uno particolarmente fastidioso fa sì che l’icona dell’applicazione che gestisce gli SMS mostri sempre che ci sono uno o più messaggi da leggere, ma di fatto tali messaggi non compaiono nel’applicazione stessa, rendendo impossibile leggerli o eliminarli. Se ne parla, ad esempio, qui.

In realtà, il problema è facilmente risolvibile agendo manualmente sul database in cui vengono memorizzati i messaggi, che è un normalissimo database SQLite. Dato che questo può non essere alla portata di tutti, e siccome volevo divertirmi un po’ col Python appena installato sul mio iPhone, ho scritto un’applicazioncina che permette di risolvere il problema lanciando un singolo comando. Essa va sotto il fantasiosissimo nome di iPhone SMS Fixer, ed è disponibile per il download al seguente link: [download#1#nohits].

Una caratteristica degna di nota è che l’applicazione può essere usata sia su un PC (con qualunque OS, essendo scritta appunto in Python) o sull’iPhone stesso, installando il pacchetto di Python attraverso Cydia. Il rovescio della medaglia è che serve per forza un iPhone jailbreakato.

Riporto uno spezzone del README in inglese, giusto per farmi indicizzare opportunamente da Google ;):

iPhone SMS Fixer – Fix wrong unread SMS count on an iPhone
===============================================================================
This program can fix a “corrupt” SMS database on an iPhone, which always
shows an unread message count of 1 (or possibly more). This issue seems to
happen quite frequently with the “missed call” SMS notifications sent by
Vodafone Italia and other operators. It seems present in all versions of the
iPhone firmware released so far (2.1 is the latest, at the time of writing).

Beh, è tutto. Ricordatevi di fare un backup del vostro telefono, e divertitevi :).

11 thoughts on “iPhone SMS Fixer

  1. Thanks for your script. I tried it on a Mac as well as on the iPhone 3G itself.

    Unfortunately, it quits with this message:
    File “./smsfix”, line 129, in
    main ()
    File “./smsfix”, line 117, in main
    n = smsdb.fixUnreadCount (SmsDB.FIX_MARKASREAD)
    File “./smsfix”, line 95, in fixUnreadCount
    self.__fixMessage (row[0])
    File “./smsfix”, line 83, in __fixMessage
    self.dbConn.commit ()
    sqlite3.OperationalError: SQL logic error or missing database

    Do you have an idea or a fix for that?

    Thunda

  2. lo so..volevo vedere semplicemente come funzionava python su iphone..quindi speravo nel sorgente..non puoi metterlo?:)
  3. Beh, c’è! Basta che scompatti il .deb. Comunque OK, appena pubblico la nuova versione (questione di giorni) faccio anche un pacchetto coi sorgenti. A dire il vero volevo mettere tutto su Google Code…
  4. I tried it on the iphone. There were two messages that had a problem and one was left after I fixed it the first time to I pressed the button a second time without thinking.
    At that point, the count of unread messages went down to (-1). I had a good laugh (the sms app properly displays a red “-1″ badge on the SMS icon in springboard!!), and then I used the tip from http://www.macosxhints.com/article.php?story=20081216115312368
    to put it back to 0.
    Maybe add a check in the program to make sure this doesn’t happen?
  5. @Stefan: Keep your eyes on Cydia for the next few days ;).

    @eema: Non ci crederai, ma ho ho creato il progetto Google Code proprio qualche giorno fa:

    http://iphonesmsfix.googlecode.com

    Al momento sul SVN trovi la versione in cui sto implementando il fix per il -1 di cui si parla qua sopra (a dire il vero è già completa, sto solo aspettando che un ragazzo faccia il testing, poi la rilascerò), ma se prendi la revisione 2 avrai i sorgenti della vecchia versione. Appena ho tempo li taggo.

    Enjoy!

  6. Pingback: iPhone SMS-Fehler beheben

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>