Primero configure la APN de datos móviles a través de la UI y verifique que funciona.
A continuación, tendremos que configurar a MMS APN sin usar la API. Para ello, necesitaremos acceder al teléfono a través de adb
y necesitarás un teléfono con root (ver otros posts sobre cómo hacerlo si no lo tienes ya). Todos los comandos podrían realizarse alternativamente en el propio dispositivo a través de un shell.
En Android, las diferentes redes que pueden ser configuradas se identifican por un "ID de suscriptor" o subId. El primer paso es encontrar la correcta subId
para usar.
Si no lo has hecho ya, reinicia adb como Root usando adb root
.
Ahora encuentra el subId
ya en uso para los datos con:
adb shell content query --uri content://telephony/carriers/preferapn
Busca la parte de la línea que parece sub_id=3,
- puede tener un número diferente en lugar de 3. Esa es la subId de los datos móviles - no la que queremos usar, pero útil para la eliminación. También toma nota de la _id
y el número numeric
de la respuesta los necesitarás en otro paso.
Corre adb logcat -d -e "matching subId"
y mira los sublímites que vuelven. Si sólo tienes una SIM habilitada, pero necesitas habilitar una red separada para MMS, deberías ver dos números diferentes en los resultados. Elimina el que coincide con el subId de datos del móvil. Este es el subId que necesitará configurar (en mi caso, es el 2).
Ahora enumere las opciones con
adb shell content query --uri content://telephony/carriers/ --where "numeric='50502'"
(reemplazando 50502
con el numérico que grabó de la consulta anterior). En los resultados, encuentra la fila que coincide con el APN que quieres configurar. En el caso de Optus, la fila será algo como
Row: 5 _id=2912, name=Optus MMS, numeric=50502, mcc=505, mnc=02, apn=mms, user=*,
server=*, password=*, proxy=202.139.83.152, port=8070, mmsproxy=61.88.190.10, mmsport=8070,
mmsc=http://mmsc.optus.com.au:8002/, authtype=-1, type=mms, current=1, protocol=IP,
roaming_protocol=IP, carrier_enabled=1, bearer=0, bearer_bitmask=0, mvno_type=,
mvno_match_data=, sub_id=3, profile_id=0, modem_cognitive=0, max_conns=0, wait_time=0,
max_conns_time=0, mtu=0, edited=0, user_visible=1, user_editable=1
Si hay varias opciones y no está seguro de cuál es, puede probar cada una de ellas por separado siguiendo los siguientes pasos. Anote el número después de _id=
- que es el ID de tu APN que necesitas configurar.
Para configurar el MMS APN, use el comando
adb shell content insert --uri content://telephony/carriers/preferapn/subId/2 --bind apn_id:l:2912
Reemplazar el 2
con el subId que elaboraste que necesitabas configurar (es decir, el que no es el subId de datos móviles). Sustituya el 2912
en el anterior con el apn_id del comando anterior.
Si configuró la APN con éxito, ahora debería poder enviar MMS y usar datos móviles al mismo tiempo.