2010-06-15 13 views
4

Je veux accéder aux messages stockés dans la boîte de réception via mon projet android . J'ai essayé la méthode de formation d'URI pour les sms (contenu: // sms/ boîte de réception) et puis lui demander pour divers paramètres.Accéder à la boîte de réception des messages sans contenu UrI (contenu //: sms)

Mais je ne trouve pas de documentation pour la lecture des sms de la boîte de réception dans la norme Android Developr Docs . Il a été mentionné sur divers sites web que ce contenu a été retiré du standard sdk. L'application ne peut pas supporter la version plus élevée d'android.

Donc, comment puis-je créer une application pour lire les sms de la boîte de réception qui est fiable dans la version furure d'android.

S'il vous plaît aider !!

+2

Bon article ici: http://mobdev.olin.edu/mobdevwiki/FrontPage/Tutorials/SMS%20Messaging –

Répondre

4

il fonctionne bien dans mon étape (sdk mise à jour 2,1)

public List<String> getSms() { 
     Uri mSmsQueryUri = Uri.parse("content://sms/inbox"); 
     List<String> messages = new ArrayList<String>(); 
     Cursor cursor = null; 
     try { 
      cursor = mContentResolver.query(mSmsQueryUri, null, null, null, null); 
      if (cursor == null) { 
       Log.i(TAG, "cursor is null. uri: " + mSmsQueryUri); 
       return messages; 
      } 

      for (boolean hasData = cursor.moveToFirst(); hasData; hasData = cursor.moveToNext()) { 
       final String body = cursor.getString(cursor.getColumnIndexOrThrow("body")); 
       messages.add(body); 
      } 
     } catch (Exception e) { 
      Log.e(TAG, e.getMessage()); 
     } finally { 
      cursor.close(); 
     } 
     return messages; 
    } 

S'il vous plaît assurez-vous que vous avez la permission de sms lu:

<uses-permission android:name="android.permission.READ_SMS"></uses-permission> 
+0

Salut, Merci pour votre réponse. Bien que cette façon d'accéder à la boîte de réception fonctionne, mais il a été retiré de la norme sdk (comme mentionné à divers sites Web post, y compris développeur Android). Il n'y a pas de documentation sur les docs de développement Android concernant le contenu du fournisseur de contenu: // sms. Cette méthode peut ne pas fonctionner dans les prochaines versions d'andre. C'est pourquoi je cherche un moyen fiable d'accéder à la boîte de réception (pas par le contenu uri comme mentionné dans le sujet de la poste). S'il vous plaît laissez-moi savoir si quelqu'un sait d'une autre façon de le faire. Merci –

+0

Avez-vous obtenu une solution pour accéder à la boîte de réception? –

+0

@ qrtt1: Oui. C'est utile pour moi. Merci beaucoup. En passant est-il une méthode pour obtenir des applications installées comme ça? – Praveenkumar

1

Il y a une utilisation standard SmsMessage pour envoyer messages . Cependant, je pense que la solution Content Provider est plus stable que Concrete Class, car Content Provider est la couche abstraite permettant d'accéder aux données dans le cas d'applications croisées. Dans une vision à long terme, tout pourrait être changé. Pour y faire face, les développeurs bénéficieront de l'adoption d'un modèle de conception, d'une classe wrapper pour manipuler le fournisseur de contenu (Facade), ou d'un modèle d'accès aux données.

Dans le fichier de configuration android, nous pouvons limiter le niveau sdk pour éviter quelque chose de perdu:

<uses-sdk 
    android:minSdkVersion="5" 
    android:maxSdkVersion="8" 
    android:targetSdkVersion="7" /> 

Je suis un débutant dans le développement Android, même si je l'ai lu beaucoup de documents ou de livres, je sais qu'il ya beaucoup de magie noire dans le code source. Le changement est trop rapide pour écrire le document complet (il est impossible de le tenir à jour), donc ne vous inquiétez pas de l'AUTHORITY ou de la classe modifiée.

mes 2 cents

Questions connexes