Ich habe eine SMS eingehende Telefonnummer 123456
. Ich möchte eine Absicht verwenden, um die SMS-Nachricht der eingehenden Telefonnummer im Dienst zu öffnen. Ich habe versucht, zwei Möglichkeiten, aber sie geben nicht zufrieden ErgebnisseKann SMS im Lesemodus Android 5.0 nicht lesen?
Erster Weg:
Intent smsIntent = new Intent(Intent.ACTION_MAIN);
smsIntent.addCategory(Intent.CATEGORY_DEFAULT);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(smsIntent);
Die Art und Weise nur öffnet die SMS-Liste. Wir müssen uns das eingehende Telefon in der Liste ansehen und benötigen einen weiteren Schritt, um den Inhalt des eingehenden SMS-Telefons zu öffnen. Ich möchte den Schritt ignorieren. Es bedeutet, dass es direkt den Inhalt der eingehenden SMS-Telefonnummer gehen wird.
Zweiter Weg:
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", SMSphoneNumber);
smsIntent.putExtra("sms_body",SMSBody);
smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(smsIntent);
diese Weise die Einzelheiten der eingehenden SMS-Telefonnummer lesen kann, aber es ist Modus sendet. Ich möchte SMS im Lesemodus lesen.
Wie kann ich es in Android L tun? Vielen Dank an alle
Die Frage bezieht sich auf How to open SMS intent to read (not send) message?. Der andere stellt den Quellcode für zwei Fälle bereit: der eine ist der Lesemodus (erster) mit einem weiteren Schritt, der andere ist der Sendemodus.
Update: Das ist viel, was ich die SMS eingehende Telefonnummer
public class SMSReceiver extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
Bundle extras = intent.getExtras();
SmsMessage[] smgs = null;
String infoSender = "";
String infoSMS = "";
if (extras != null) {
// Retrieve the sms message received
Object[] pdus = (Object[]) extras.get("pdus");
smgs = new SmsMessage[pdus.length];
for (int i = 0; i < smgs.length; i++) {
smgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
infoSender += smgs[i].getOriginatingAddress();
if (smgs[i].getMessageBody()!=null)
infoSMS += smgs[i].getMessageBody().toString();
else
infoSMS += ".";
}
Toast.makeText(context, "Phone in SMSReceiver is -" + infoSender + "Body is" + infoSMS, Toast.LENGTH_SHORT).show();
}
}
}
}
helfen Deine Frage ist mir nicht klar. Möchten Sie die Nummer und den Nachrichtentext abrufen und nach einer bestimmten Nummer filtern? –
Ich habe bereits Nummer und Körper von BroadcastReceiver. Ich möchte nur die SMS der eingehenden Telefonnummer im Lesemodus öffnen. – Jame
Mögliches Duplikat von [So öffnen Sie die SMS-Absicht, Nachrichten zu lesen (nicht zu senden)?] (Http://stackoverflow.com/questions/39678042/how-to-open-sms-intent-to-read-not-send- Nachricht) –