167 votes

Envoyer un SMS sur Android

Je veux envoyer des sms.

Quel est l'objectif pour l'envoi de SMS...ou tout autre code? Je veux montrer à composer des sms afficher avec mon pré-définir le texte passage dans le champ message.

Est-il de l'aide pour qui?


Remarque...

cette question date d'avant la "SmsManager" ère sur Android.

Pour 2014+ utilisez simplement SmsManager http://developer.android.com/reference/android/telephony/SmsManager.html

200voto

Ads Points 2567

Vous pouvez utiliser le code suivant:

 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("sms:"
                        + phoneNumber)));
 

Assurez-vous de régler phoneNumber sur le numéro de téléphone auquel vous voulez envoyer le message.

153voto

selva_pollachi Points 1452

Cela a fonctionné pour moi.

 public void onCreate(Bundle savedInstanceState)
{
     super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
     Button btnSendSMS = (Button) findViewById(R.id.btnSendSMS);
      btnSendSMS.setOnClickListener(new View.OnClickListener()
      {
         public void onClick(View v)
         {
             sendSMS("5556", "Hi You got a message!");

                       /*here i can send message to emulator 5556. In Real device 
                                                               you can change number  */

          }
      });
   }
  //---sends an SMS message to another device---

   private void sendSMS(String phoneNumber, String message)
   {
       SmsManager sms = SmsManager.getDefault();
       sms.sendTextMessage(phoneNumber, null, message, null, null);
    }

}
 

Vous pouvez ajouter cette ligne dans AndroidManifest.xml

 <uses-permission android:name="android.permission.SEND_SMS"/>
 

Regardez ça

Cela peut être utile pour vous.

39voto

Senthil Mg Points 1598

Salut, essayons le code ci-dessous ... et concevez votre mise en page avec le bouton edittext et send et placez le sendSMS("99999999999", "message"); dans l’événement click de sendbutton.

 class A extends Activity
{
Oncreate()
{
  editText = (EditText) findViewById(R.id.message);
  sendBtn  =  (Button)findViewById(R.id.send);

sendBtn  .setonclickListener(new OnClickListener(){
public void Onclick(){
 sendSMS("99999999999", "message");
}
});

}

//---sends an SMS message to another device---
    @SuppressWarnings("deprecation")
    private void sendSMS(String phoneNumber, String message)
    {        
        Log.v("phoneNumber",phoneNumber);
        Log.v("MEssage",message);
        PendingIntent pi = PendingIntent.getActivity(this, 0,
            new Intent(this, **DummyClasshere.class**), 0);                
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, pi, null);        
    }    

}
 

Veuillez placer la permission suivante dans le fichier AndroidManifest.xml .

 <uses-permission android:name="android.permission.SEND_SMS"/>
 

J'espère que cela pourrait vous aider un peu ...

28voto

Dwivedi Ji Points 2895

Cela fonctionnera sans aucun doute. Dans ce cas, envoyez un message sans utiliser d'intention.

 SmsManager smsManager =     SmsManager.getDefault();
smsManager.sendTextMessage("Phone Number", null, "Message", null, null);
 

Ce code est utilisé pour envoyer un message en arrière-plan (ne pas afficher le composeur du message) , il peut également fonctionner dans le récepteur de diffusion . Si vous souhaitez envoyer un message à partir du récepteur de diffusion.

    <uses-permission android:name="android.permission.SEND_SMS"/>
 

10voto

chiranjib Points 1986

Dans Android , nous avons la classe SmsManager qui gère les SMS des opérations telles que l'envoi de données, de texte, et de pdu SMS. Obtenir cet objet en appelant la méthode statique SmsManager.getDefault().

SmsManager Javadoc

Consulter le lien suivant pour obtenir le code d'exemple pour l'envoi de SMS:

article sur l'envoi et la réception de messages SMS sous Android

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