<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
Comme il est écrit,
READ_PHONE_STATE
concerne le téléphoneJava
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);
SmsManager fait du bon travail.
Envoyez des SMS textuels. Tout ce que j'ai à faire est d'envoyer un SMS, donc j'examinerai les détails plus tard.
String number = "09000000000"; //Numéro de téléphone de destination
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(
number,
null,
"Hello",
null,
null
);
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 ↑----- //
}
}