[JAVA] Lorsque vous recevez un appel, envoyez un SMS à ce numéro

Quoi ajouter à AndroidManifest.xml

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

Comme il est écrit,

Java

Description du téléphone

TelephonyManager et PhoneStateListener font quelque chose à ce sujet.

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
telephonyManager.listen(new PhoneStateListener(){
	@Override
	public void onCallStateChanged(int state, String number) {
		//L'état est le numéro qui indique l'état, et le nombre est le numéro qui a été reçu lorsque l'appel a été reçu.
		switch(state) {
			//Événement entrant
			case TelephonyManager.CALL_STATE_RINGING:
				System.out.println(number + "C'est un appel entrant de M.");
				break;
			//Événement au début d'un appel
			case TelephonyManager.CALL_STATE_OFFHOOK:
				System.out.println("J'ai commencé à parler");
				break;
			//Lors du passage à l'état de veille(Quand tu raccroche)un événement
			case TelephonyManager.CALL_STATE_IDLE:
				System.out.println("Je raccrochai");
				break;
		}
	}
}, PhoneStateListener.LISTEN_CALL_STATE);

Description du SMS

SmsManager fait du bon travail.

sendTextMessage, méthode

Envoyez des SMS textuels. Tout ce que j'ai à faire est d'envoyer un SMS, donc j'examinerai les détails plus tard.

argument
  1. String destinationAddress --Adresse de destination
  2. String scAddress
  1. String text --Contenu du message
  2. PendingIntent sentIntent
  1. PendingIntent deliveryIntent --Diffuser lorsque le message est remis au destinataire, s'il n'est pas nul
String number = "09000000000";	//Numéro de téléphone de destination

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(
	number,
	null,
    "Hello",
    null,
    null
);

Description finale

Envoyez un message simple à la personne qui vous a appelé, en disant simplement "Hey !!"

MainActivity.java


package example.com.sample003;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.SmsManager;
import android.telephony.TelephonyManager;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // -----L'important est ↓ d'ici ↓----- //
        TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
        telephonyManager.listen(new PhoneStateListener() {
            @Override
            public void onCallStateChanged(int state, String number) {
                //L'état est le numéro qui indique l'état, et le nombre est le numéro qui a été reçu lorsque l'appel a été reçu.
                switch (state) {
                    //Événement entrant
                    case TelephonyManager.CALL_STATE_RINGING:
                        SmsManager smsManager = SmsManager.getDefault();
                        smsManager.sendTextMessage(
                                number,
                                null,
                                "Hey!!",
                                null,
                                null
                        );
                        break;
                    //Événement au début d'un appel
                    case TelephonyManager.CALL_STATE_OFFHOOK:
                        break;
                    //Lors du passage à l'état de veille(Quand tu raccroche)un événement
                    case TelephonyManager.CALL_STATE_IDLE:
                        break;
                }
            }
        }, PhoneStateListener.LISTEN_CALL_STATE);
        // -----↑ Jusqu'ici ↑----- //
    }
}

prime

Exemple

Recommended Posts

Lorsque vous recevez un appel, envoyez un SMS à ce numéro
Comment créer un plugin Vagrant que vous avez appris lorsque vous avez forké et publié vagrant-mutagen
Un livre d'introduction à lire lors du démarrage de Rails
Remarques à vérifier lorsque vous essayez d'utiliser Lombok
Comment changer une chaîne dans un tableau en un nombre dans Ruby
Je veux appeler une méthode et compter le nombre
[Swift] Lorsque vous voulez savoir si le nombre de caractères dans String correspond à un certain nombre ...
Que faire si une exception UnsupportedCharsetException se produit dans un JRE léger
Paramètre qui se convertit en binding.pry lorsque vous tapez pry dans VScode
Que faire en cas de problème pendant Content Assist
Que faire lorsque vous rencontrez le problème node_modules avec docker-compose
Créer une ArrayList qui vous permet de lancer et de récupérer les coordonnées d'un plan bidimensionnel
Envoyer une pull request à GitHub
[Swift] Comment envoyer une notification
Un mémo lorsque vous souhaitez effacer la partie horaire de l'agenda
Lorsque vous souhaitez que Rails désactive une session pour un contrôleur spécifique
L'histoire de la rencontre d'un débordement arithmétique qui ne devrait pas être rencontré dans Ruby
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
Êtes-vous toujours épuisé par la recherche d'exemples de vidéos? Un bouton pour envoyer des vidéos FANZA à Slack lorsque vous appuyez dessus.
Lors de l'introduction de JOOQ dans Spring Boot, une histoire qui a été traitée parce qu'une erreur s'est produite autour de Liquidbase