<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
Wie es geschrieben steht,
READ_PHONE_STATE
handelt vom TelefonSEND_SMS
handelt von SMS
Privileg. Gib diesen.Java
TelephonyManager und PhoneStateListener tun etwas dagegen.
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
telephonyManager.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String number) {
//Der Status ist die Nummer, die den Status angibt, und die Nummer ist die Nummer, die beim Empfang des Anrufs empfangen wurde.
switch(state) {
//Eingehendes Ereignis
case TelephonyManager.CALL_STATE_RINGING:
System.out.println(number + "Es ist ein eingehender Anruf von Mr.");
break;
//Ereignis zu Beginn eines Anrufs
case TelephonyManager.CALL_STATE_OFFHOOK:
System.out.println("Ich fing an zu reden");
break;
//Beim Wechsel in den Standby-Zustand(Wenn du auflegst)Veranstaltung
case TelephonyManager.CALL_STATE_IDLE:
System.out.println("Ich habe aufgelegt");
break;
}
}
}, PhoneStateListener.LISTEN_CALL_STATE);
SmsManager macht einen guten Job.
Senden Sie textbasierte SMS. Ich muss nur eine SMS senden, damit ich zu einem anderen Zeitpunkt die Details untersuchen kann.
String number = "09000000000"; //Zielrufnummer
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(
number,
null,
"Hello",
null,
null
);
Senden Sie eine einfache Nachricht an die Person, die Sie angerufen hat, und sagen Sie einfach "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);
// -----Das Wichtigste ist ↓ von hier ↓----- //
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
telephonyManager.listen(new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String number) {
//Der Status ist die Nummer, die den Status angibt, und die Nummer ist die Nummer, die beim Empfang des Anrufs empfangen wurde.
switch (state) {
//Eingehendes Ereignis
case TelephonyManager.CALL_STATE_RINGING:
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(
number,
null,
"Hey!!",
null,
null
);
break;
//Ereignis zu Beginn eines Anrufs
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
//Beim Wechsel in den Standby-Zustand(Wenn du auflegst)Veranstaltung
case TelephonyManager.CALL_STATE_IDLE:
break;
}
}
}, PhoneStateListener.LISTEN_CALL_STATE);
// -----↑ Bis hierher ↑----- //
}
}
Recommended Posts