2012-08-27 17 views
5

La mia app dovrebbe aprire l'attività Impostazioni rete mobile. Tutto funziona bene, tranne i dispositivi con Android 4.1, che schianto dopo il tentativo di aprire le impostazioniImpostazioni di rete mobile in Android 4.1

Intent intent = new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS); 
final ComponentName cName = new ComponentName("com.android.phone", "com.android.phone.Settings"); 
intent.setComponent(cName); 
startActivity(intent); 

Stack trace dopo la brutta caduta:

java.lang.SecurityException: Permission Denial: starting Intent { act=android.settings.DATA_ROAMING_SETTINGS cmp=com.android.phone/.Settings } from ProcessRecord{41b83198 ... 

Tutte le idee? Potrebbe essere a causa del manifest?

UPDATE:

sembrare che il problema è stato risolto qui: Android - Mobile network settings menu (Jelly Bean)

La cosa è cambiare "com.android.phone.Settings" a "com.android.phone.MobileNetworkSettings"

+0

Quale dispositivo si sta verificando questo, in quanto [in alcuni casi, un'attività di abbinamento potrebbe non esistere, quindi assicurarsi di salvaguardarlo da questo] (http://developer.android .com/riferimento/android/provider/Settings.html # ACTION_DATA_ROAMING_SETTINGS) – Andrei

+0

Il problema è stato trovato su Nexus S – Alex

risposta

7

credo che bisogna provare

Intent intent = new Intent(); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.setAction(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS); 
startActivity(intent); 

Questa cosa sta lavorando per me in Android 4.1.2, potrebbe essere risolto il problema in 4.1.2

Problemi correlati