2012-01-23 6 views
30

Ciao colleghi,Qual è l'elenco completo di tutte le azioni "android.intent.action" disponibili nell'SDK di Android?

Mi piacerebbe sapere se esiste un riferimento esaustivo di tutte le azioni Intent definite nell'SDK standard di Android? Sto pensando ai nomi completi di "android.intent.action.someaction", non alla lista ristretta di azioni opportunamente con alias definite nella classe Intent, ad esempio Intent.ACTION_VIEW, Intent.ACTION_POWER_CONNECTED, ecc ...

Per coloro che credono che tutte le azioni Intent siano alias nella classe Intent (io ero uno di loro fino a poco tempo fa) ho almeno un'azione che non è: android.intent.action.HDMI_PLUG (definito in media/java/android/media/AudioService.java) e credo che ce ne siano molti altri.

Ma non sono riuscito a trovare un elenco esaustivo nel Riferimento Android, quindi forse se riesci a indirizzarmi verso un posto posso trovarlo?

Grazie!

--- UPDATE 23/01/2012 15h36 ---

Grazie a CommonsWare per ricordare HDMI_PLUG non è affatto parte del SDK Android ... è stato un cattivo esempio, ma ancora, ci sono intenti non definiti in Intent.java, ad esempio TelephonyManager.ACTION_PHONE_STATE_CHANGED.

+0

Che dire di [questo] (http://developer.android.com/reference/android/content/Intent.html)? – Ghost

risposta

52

Hey penso ho risposto alla mia domanda :)

nella mia directory Android SDK, sotto/dati/piattaforme/x android-(x è il livello API) Ho trovato diversi file molto interessanti:

  • activity_actions.txt
  • broadcast_actions.txt
  • categories.txt
  • features.txt
  • widgets.txt

Risulta che i primi due contengono un sacco di Intenti grezzi, compresi quelli che non sono definiti in Intent.java!

Non sono sicuro di quale sia l'elenco di questi argomenti, vorrei solo essere sicuro che siano esaurienti per il loro livello API ... (anche se non vedo perché non lo sarebbero)

+0

dovresti usare solo intenti esportati da sdk, altrimenti non sarai sicuro se saranno supportati in futuro – user3290180

+0

https://chromium.googlesource.com/android_tools/+/feed84a3a3cb7c2cb80d580d79c31e22e9643a5/sdk/platforms/android-23/data – HackNone

6

Mi piacerebbe sapere se esiste un riferimento esauriente a tutte le azioni Intent definite nell'SDK standard di Android?

No.

Per coloro che credono tutte le azioni Intent sono alias nella classe Intent (io ero uno di loro fino a poco tempo fa) ho almeno un'azione che non è: android.intent .action.HDMI_PLUG (definito in media/java/android/media/AudioService.java) e credo che ce ne siano molti altri.

Se non è nel SDK, non v'è alcuna garanzia che possa esistere su qualsiasi versione di Android (passato/presente/futuro) o su qualsiasi dispositivo (data la capacità dei costruttori di cambiare non SDK elementi). Nello specifico, in questo caso, non esiste lo AudioService nell'SDK di Android e non è presente l'azione HDMI_PLUG nell'SDK di Android.

+1

Ciao ancora CommonsWare, beh, hai ragione, l'intento HDMI_PLUG non fa parte dell'SDK, non fa nemmeno parte di una qualsiasi delle API Android standard ... In realtà è stato un pessimo esempio, mi dispiace ma, comunque, che dire di TelphonyManager.ACTION_PHONE_STATE_CHANGED? Questo è parte dell'SDK di Android, sono abbastanza sicuro questa volta! :) Tuttavia non è nella classe Intent ... – Wouzz

+2

@Wouzz: Questo è il motivo per cui ho risposto "no" alla tua prima domanda. – CommonsWare

0

No, almeno non ho trovato un elenco esaustivo e ne ho cercato uno. Stavo cercando tutti gli Intenti relativi a NFC (ad esempio ACTION_NDEF_DISCOVERED, ACTION_TECH_DISCOVERED, ...). Sembra che la documentazione developer.android.com sia tutto pasto pezzo. Quello che voglio dire è che non c'è quasi nessuna sezione 'definitiva' su qualcosa. Un po 'frustrante. (Ma questa è solo la mia opinione).