2013-04-03 3 views
3

J'écris une application qui enverra un SMS automatiquement à un certain nombre sous certaines conditions, le code SMS fonctionne et le SMS est également livré .. mais les SMS envoyés n'apparaissent pas dans l'une des autres SMS Clients/applications installées ...Android - sendTextMessage Message n'apparaissant pas dans les applications SMS

String phoneNumber = "1234512345"; 
String message = "Test Message"; 
SmsManager smsManager = SmsManager.getDefault(); 
smsManager.sendTextMessage(phoneNumber, null, message, null, null); 

Qu'est-ce que je suis absent? Je veux que le SMS envoyé (envoyé par mon application) pour apparaître dans d'autres applications SMS qui sont installés ..

Répondre

6

Oui, vous avez envoyé SMS progrmatically mais vous avez pas informé du contenu du fournisseur SMS il sera ne pas recevoir votre message à moins que vous ne l'informiez.

ContentValues values = new ContentValues(); 
values.put("address", "1234512345"); 
values.put("body", "Test Message"); 
getContentResolver().insert(Uri.parse("content://sms/sent"), values); 

Assurez-vous d'inclure ci-dessous les autorisations dans AndroidManifest.xml fichier:

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

Génial, merci beaucoup ... Cela a fonctionné – amithgc

-2

utilisation récepteur de radiodiffusion à recevoir application côté

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 

    Bundle bundle = intent.getExtras(); 
    String str=""; 
    String from=""; 


     if (bundle != null) { 
      Object[] pdus = (Object[])bundle.get("pdus"); 
      final SmsMessage[] messages = new SmsMessage[pdus.length]; 
      for (int i = 0; i < pdus.length; i++) { 
       messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);      
       str += messages[i].getMessageBody().toString(); 
       from = messages[i].getOriginatingAddress().toString(); 
      } 

      if(from.equals("123456789")){ 

      str= str.trim(); 

      abortBroadcast(); 
      Intent intt = new Intent(context,MainActivity.class); 
        intt.putExtras("message",str); 
      intt.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(intt); 
      } 
     } 

dans votre MainActivity écrire un code pour afficher l'obtenir message. le message sera dans l'intention. alors récupère la chaîne.

ici le récepteur de diffusion, reçoit des messages du seul numéro "123456789". les messages de ce numéro ne vont pas à la boîte de réception de votre mobile. Si vous voulez voir dans la boîte de réception, supprimez également la méthode abortBroadcast().

+0

Quel est l'objectif de ce code? –

+0

il recevra les messages du numéro spécifié mentionné là-bas, c'est-à-dire "123456789" –

+1

pourquoi faisons-nous des choses complexes ici? La solution fournie par @PareshMayani est au point et fonctionne ... – amithgc

Questions connexes