Ich möchte eine Rich Communication-Nachricht abfangen (bekannt als Chat in einigen Netzwerken wie Vodafone). Ich habe erfolgreich einen SMS-Empfänger mit einem Intent-Filter und Broadcast-Empfänger implementiert, der großartig funktioniert. Wenn die SMS jedoch eine Rich-Communication-Nachricht ist, wird der Empfänger nie angerufen.Wie kann ich eine reiche Kommunikation Nachricht auf Android abfangen
In meinem Manifest:
<receiver
android:name=".IncomingSMS"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
und meine Rundfunkempfänger sieht wie folgt aus:
public class IncomingSMS extends WakefulBroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
// Retrieves a map of extended data from the intent.
final Bundle bundle = intent.getExtras();
if (bundle != null)
{
final Object[] pdusObj = (Object[]) bundle.get("pdus");
SmsMessage currentMessage;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
String format = bundle.getString("format");
currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[0], format);
}
else
{
//noinspection deprecation
currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[0]);
}
String number = currentMessage.getDisplayOriginatingAddress();
Intent serviceintent = new Intent(context, ChargingMonitorService.class);
serviceintent.putExtra(NUMBER, number);
startWakefulService(context, serviceintent);
} // bundle is null
}
}
Das alles funktioniert perfekt, außer wenn die Textnachricht eine Rich Communication (oder Chat) Nachricht die OnReceive() wird nie aufgerufen.
Da ist nichts in der Android-Dokumentation, also nehme ich an, dass es eine herstellerspezifische Absicht sein wird, aber was ist das?
RCS hat wirklich nichts mit SMS zu tun, also wird Ihr Receiver niemals für diese feuern. Es gibt mehrere Open-Source-RCS-Implementierungen für Android, die Sie sich ansehen können, aber es ist viel mehr involviert als einfache Textnachrichten zu verarbeiten. –
Obwohl RCS unterscheidet sich von SMS in derselben Standard-Messaging-App auf Samsung-Handys auf Vodafone behandelt. Ich weiß es nicht, aber ich gehe davon aus, dass es kein Samsung-Feature ist. Sie können sehen, einige Nachrichten haben "SMS" in der Blase und einige haben "Chat". Da in den Android-Entwicklerdokumenten nichts enthalten ist, vermute ich, dass es sich um eine herstellerspezifische Absicht handelt, die wahrscheinlich nur auf bestimmten Geräten funktioniert, aber ich würde trotzdem gerne wissen, was sie sind. Ich bin nur daran interessiert, die Absenderdetails zu erkennen, so dass ich nicht den komplizierteren Code benötige, der benötigt wird, um die Nachricht vollständig zu interpretieren. –