Configurez d'abord l'APN de données mobiles via l'interface utilisateur et vérifiez que cela fonctionne.
Ensuite, nous devons configurer l'APN MMS sans utiliser l'API. Pour ce faire, vous devez accéder au téléphone par le biais de l'API. adb
Vous aurez besoin d'un téléphone enraciné (voir d'autres articles sur la façon de le faire si vous ne l'avez pas déjà). Toutes les commandes peuvent également être exécutées sur l'appareil lui-même via un shell.
Dans Android, les différents réseaux qui peuvent être configurés sont identifiés par un "ID d'abonné" ou subId. La première étape consiste à trouver le bon subId
à utiliser.
Si vous ne l'avez pas encore fait, redémarrez adb en tant que Root en utilisant adb root
.
Maintenant, trouvez le subId
déjà utilisé pour les données avec :
adb shell content query --uri content://telephony/carriers/preferapn
Cherchez la partie de la ligne qui ressemble à sub_id=3,
- il se peut que vous ayez un numéro différent à la place du 3. C'est le sous-ID pour les données mobiles - pas celui que nous voulons utiliser, mais utile pour l'élimination. Notez également l'élément _id
et le numeric
de la réponse - vous en aurez besoin dans une autre étape.
Exécuter adb logcat -d -e "matching subId"
et regardez les sous-indices qui reviennent. Si vous n'avez activé qu'une seule carte SIM, mais que vous devez activer un réseau distinct pour les MMS, vous devriez voir deux numéros différents dans les résultats. Éliminez celui qui correspond au sous-ID des données mobiles. C'est le subId que vous devrez configurer (dans mon cas, c'est le 2).
Maintenant, listez les options avec
adb shell content query --uri content://telephony/carriers/ --where "numeric='50502'"
(remplacement 50502
avec le numéro que vous avez enregistré lors de la requête précédente). Dans les résultats, trouvez la ligne qui correspond à l'APN que vous voulez configurer. Dans le cas d'Optus, la ligne ressemblera à quelque chose comme suit
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
S'il y a plusieurs options et que vous ne savez pas laquelle choisir, vous pouvez les essayer l'une après l'autre en suivant les étapes suivantes. Notez le numéro qui suit _id=
- c'est votre ID APN que vous devez configurer.
Pour configurer l'APN MMS, utilisez la commande
adb shell content insert --uri content://telephony/carriers/preferapn/subId/2 --bind apn_id:l:2912
Remplacer le 2
avec le subId que vous avez déterminé comme devant être configuré (c'est-à-dire celui qui n'est pas le subId des données mobiles). Remplacez le 2912
dans le tableau ci-dessus avec l'apn_id de la commande ci-dessus.
Si vous avez configuré l'APN avec succès, vous devriez maintenant être en mesure d'envoyer des MMS et d'utiliser des données mobiles en même temps.