Non ho SE telefono, ma ho guardato nella sua discarica di sistema e:
- In fonti AOSP ci sono due metodi interni di interfaccia com.android.internal.telephony: enableDataConnectivity() e disableDataConnectivity(). Questa interfaccia e la sua implementazione fanno parte del sistema.
- Esistono anche due metodi con lo stesso nome di cui sopra in com.android.phone.PhoneInterfaceManager che fa parte dell'app Phone.apk. Questi metodi chiamano solo quelli sopra/di sistema.
- Sony ha modificato com.android.phone.PhoneInterfaceManager.enableDataConnectivity(), quindi esegue un controllo aggiuntivo per il valore booleano memorizzato in sharedPreferences. Se è false, il metodo enableDataConnectivity() chiama sempre disableDataConnectivity() di com.android.internal.telephony.
- Ovviamente questa booleana è controllata tramite la schermata delle preferenze: "MMS & dati". È memorizzato nel contenitore delle preferenze "com.android.phone_preferences" e la chiave di pref è: "data_service_key". Inoltre, quando si attiva questa casella di controllo, l'attività delle impostazioni chiama automaticamente i metodi da com.android.internal.telephony per cambiare immediatamente lo stato dei dati.
Se si desidera aggiungere widget di connessione dati o qualcosa di simile alla tua rom, quindi:
- Hai bisogno di root.
- È necessario "android.uid.phone" sharedUserId per accedere alle impostazioni precedenti.
Penso che sarebbe meglio modificare Phone.apk, quindi catturerà l'intento speciale di abilitare/disabilitare i dati. Dovrebbe impostare data_service_key boolean e chiamare uno dei metodi da com.android.internal.telephony. Questa dovrebbe essere una cosa abbastanza semplice da fare e quindi sarai in grado di creare widget, app e altre cose molto facilmente: useranno quell'intenzione speciale.
Non attraverso lo standard Android Api n. –
Sono d'accordo, ma nella domanda ho menzionato le impostazioni specifiche del venditore. – Wizard79