2013-09-26 10 views
10

Ho trascorso diverse ore cercando l'intento corretto per l'avvio dell'attività di utilizzo dati in Impostazioni Android. Purtroppo non ho trovato nulla (sul web e anche qui).Quale intento per le impostazioni - Utilizzo dati

Ho anche provato la riflessione (in un caso di campo privato) ma anche senza risultato. Sarò felice per qualsiasi aiuto.

Grazie in anticipo.

+0

avviare l'attività a mano. guarda nel tuo logcat. l'intento è registrato. voila – njzk2

+0

@ njzk2 io non la penso così. L'ho già testato e l'intento non è registrato. – Sajmon

+0

probabilmente è un frammento, allora? – njzk2

risposta

-1

Dai uno sguardo allo Android Intents. Stanno parlando di un intento ACTION_MANAGE_NETWORK_USAGE.

+0

Ci scusiamo ma questo non avvierà l'intento di utilizzo dei dati nelle Impostazioni ma grazie per la risposta. – Sajmon

+0

Avvierà un prompt per l'intento, con vari risolutori di app risultanti, come Servizi di Exchange, Mappe, Gmail, Youtube ... Nessuna di queste sono le preferenze di sistema richieste dall'OP. La risposta di gsysko sembra funzionare, ma forse non coerentemente tra diversi produttori, come indicato da CommonsWare – leRobot

0

Se dai un'occhiata al file manifest delle impostazioni di Android e trovi la sezione delle attività chiamata "Impostazioni $ DataUsageSummaryActivity", non sembra che abbia intenzione di essere lanciato. Il suo filtro di intent ha solo un tag di azione (MAIN).

In Impostazioni/AndroidManifest.xml,

<activity android:name="Settings$DataUsageSummaryActivity" 
...> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="com.android.settings.SHORTCUT" /> 
    </intent-filter> 
... 
</activity> 

Come si può vedere in questo codice, non v'è alcuna intenzione un'azione personalizzata definita qui.

+0

Puoi aggiungere qualche frammento di codice? Ora sono un po 'confuso dalla tua risposta. – Sajmon

+0

Ho aggiunto del codice :) – SLee

+0

E posso richiamare questa attività dal codice? – Sajmon

17

Try ...

Intent intent = new Intent(); 
intent.setComponent(new ComponentName(
      "com.android.settings", 
      "com.android.settings.Settings$DataUsageSummaryActivity")); 
startActivity(intent); 

questo ha funzionato per me. L'ho trovato dal link all'utilizzo dei dati nel codice sorgente di QuickSettings KitKat.

+0

Ha lavorato per me ... Grazie. –

+0

Non è garantito che funzioni su dispositivi e versioni di Android. – CommonsWare

+0

@CommonsWare e che cos'è? C'è un modo elegante per scoprire se quanto sopra funziona su un dispositivo specifico? –

Problemi correlati