Ich möchte eine App schreiben, die etwas tun wird, wenn sie eine Nachricht erhalten hat. Ich habe google für die Antwort für viele Tage und fand eine Lösung wie diese: Link, aber es funktioniert nicht auf Android 6 oder Marshmallow überhaupt. Gibt es also eine Möglichkeit, meine App zu aktivieren, um etwas zu tun, wenn sie eine Nachricht auf Android Marshmallow erhielt?So empfangen Sie eingehende Nachrichten auf Android [MM]?
1
A
Antwort
1
Below Beispiel Arbeit für mich in MM auch
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (Telephony.Sms.Intents.SMS_RECEIVED_ACTION.equals(intent.getAction())) {
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
Logger.e("sender Num" + senderNum);
Logger.e("message" + message);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
};
IntentFilter filter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION);
registerReceiver(broadcastReceiver, filter);
onDestroy Methode austragen Rundfunkempfänger
unregisterReceiver(broadcastReceiver);
Ihre App hat benötigen Zeit, die Erlaubnis für SMS lesen laufen. – iAndroid
@iAndroid, ja, ich habe diese Erlaubnis, SMS lesen, SMS erhalten, SMS gesendet. Aber es funktionierte nicht auf Android MM, sondern auf der niedrigeren Version wie Jellybean statt. –
können Sie Code teilen? – iAndroid