1.5 KiB
1.5 KiB
Architecture: Messages (Android, ohne Google)
Same conventions as the others; no network permission (SMS goes through the radio, not the internet).
| Schicht | Wahl | warum |
|---|---|---|
| UI | Compose, M3 Expressive, dynamic colour | same as the others |
| Rolle | RoleManager.ROLE_SMS |
only the default SMS app may write the SMS provider and receives SMS_DELIVER |
| Empfangen | SMS_DELIVER receiver (BROADCAST_SMS), joins multipart PDUs, inserts into Telephony.Sms.Inbox |
default app duty |
| MMS-Pflicht | WAP_PUSH_DELIVER receiver (accepted, stored later with MMS support) |
required for the role |
| Senden | SmsManager.divideMessage + sendMultipartTextMessage with sent/delivered PendingIntents; row in outbox → sent/failed |
status updates in the provider |
| Antwort ohne UI | RESPOND_VIA_MESSAGE service (SEND_RESPOND_VIA_MESSAGE) |
phone app "decline with message"; required for the role |
| Daten | system provider via ContentResolver + ContentObserver | no copies |
| Kontakte | PhoneLookup, same helper as Telefon |
Data: no own schema (DataStore for settings).
Bites: multipart and encoding, dual SIM (SubscriptionManager), status callbacks after process death (receiver updates by message id), notification grouping per thread, short codes and alphanumeric senders (no reply possible).
Build order: role + receive + list → conversation + send + status → notifications with reply → new chat, search, archive, delete → MMS.