2012-02-11 12 views

risposta

31

È possibile utilizzare il seguente comando da ADB:

adb shell am activity/service/broadcast -a ACTION -c CATEGORY -n NAME 

ad esempio:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n package_name/class_name 

Notare che il nome di classe e pacchetto nomi devono essere come definito nel manifesto.

Questo genererà l'intento che si desidera, diretto solo alla componente che si desidera (altrimenti il ​​sistema sarà impazzire con BOOT_COMPLETED inviato ...)

+0

Grazie. Il codice sembra fantastico. Attualmente non ho tempo per testare. Ma ho scoperto che senza usare l'istantanea, l'emulatore è molto più veloce nell'avvio e chiude :-) Mi piace! –

+0

Grazie, funziona. –

-2

emulatori hanno pulsante on/off - basta cliccare esso

+2

Quando faccio clic sul pulsante di accensione (e tieni premuto per 2 o 3 secondi), si comporta come un dispositivo reale: mi mostra il menu Modalità silenziosa/Modalità aereo/Spegni. Faccio clic su Spegni, ma non riesco ad accenderlo :-(Continua a mostrare "Arresto ..." –

4

In primo luogo, assicurarsi che il debug USB è abilitato da dentro l'emulatore:

clic:

  • l'icona Home
  • Icona menu
  • 'Impostazioni'
  • 'Applicazioni'
  • 'Sviluppo'
  • assicurarsi che la casella accanto a 'debug USB' contiene un segno di spunta

da una riga di comando:

adb -e reboot 

EDIT:

Questo sicuramente non funziona ... molto strano. L'ho provato e non ho potuto riavviare l'emulatore. Si blocca.

+0

Grazie, sto provando che ... –

+0

Scusami, potresti dirmi se corri 'adb ​​reboot' con successo? Lo eseguo per 45 minuti, il processo 'emulator-arm' continua a usare il 50% della CPU. Non risponde :-( –

+0

Nessun problema :-) Grazie per il vostro aiuto. –

26

modo o nell'altro (anche dalla riga di comando):

adb shell stop 
adb shell start 
+0

questo ha scritto per me –

+1

Sì, sono stato in grado di verificare che il mio onReceive è stato chiamato ad ascoltare BOOT_COMPLETED in questo modo.Tuttavia, il punto di interruzione non è stato raggiunto perché il debugger è stato rimosso, ma ho visto la mia dichiarazione di registro in DDMS –

-3

e un altro modo:

Se si avvia l'emulatore, e selezionare la casella di controllo "cancellare i dati utente", riceverete anche quella notifica quando l'avvio è completato.

+0

Ma se pulisco i dati, l'app che ho installato verrà cancellata :-) –

+0

Hai verificato che Wipe Use Data cancelli le app installate? Credo che cancellerà i dati (preferenze, cache, ecc.) Che sono stati memorizzati dalle app, ma non dalle app stesse ... – DavidDraughn

+0

@DavidDraughn, Scusa per la risposta in ritardo ... Ma cancella tutto e restituisce l'originale. –

8

per emulare un'azione di trasmissione, è possibile collegarsi tramite adb per l'emulatore/dispositivo e aprire una shell:

adb shell 

Quindi, è possibile trasmettere l'azione che si desidera verificare:

am broadcast -a android.intent.action.BOOT_COMPLETED 

Tieni presente che, nelle ultime versioni di Android, la trasmissione dell'azione * android.intent.action.BOOT_COMPLETED * in realtà riavvierà il tuo emulatore/dispositivo.

0

Durante l'utilizzo tubemate sulla scheda Android, non ero riuscita a scaricare video con la error:host interupped ecc ho usato i seguenti comandi:

adb shell stop 
adb shell start 

e l'applicazione iniziato a scaricare video.