Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    visualizzazione display on-off in android

    salve , come si controlla se il display e attivato e disattivato?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non l'ho provato, ma la tua app può essere notificata dell'evento registrando un BroadcastReceiver:

    codice:
    // ad esempio nel metodo onCreate()
    
    // Creo un IntentFilter per filtrare gli eventi di ON e OFF del display
    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
    
    // Registro un BroadcastReceiver per essere notificato degli eventi
    registerReceiver(new BroadcastReceiver() {
       @Override
       public void onReceive(Context context, Intent intent) {
          if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
             ... // Il display è stato attivato
          } else {
             if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
                ... // Il display è stato disattivato
             }
          }
        }
    }, intentFilter);

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Non l'ho provato, ma la tua app può essere notificata dell'evento registrando un BroadcastReceiver:

    codice:
    // ad esempio nel metodo onCreate()
    
    // Creo un IntentFilter per filtrare gli eventi di ON e OFF del display
    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
    
    // Registro un BroadcastReceiver per essere notificato degli eventi
    registerReceiver(new BroadcastReceiver() {
       @Override
       public void onReceive(Context context, Intent intent) {
          if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
             ... // Il display è stato attivato
          } else {
             if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
                ... // Il display è stato disattivato
             }
          }
        }
    }, intentFilter);

    Ciao.

    cosa gli passo come context e intent alla public void, e questo il mio problema.


    come context e questo?

    Context context = getApplicationContext();
    Ultima modifica di deleted_2024.08.22; 02-12-2016 a 22:29

  4. #4
    Buonasera, scusa forse intentFilter contiene già lo stato di on oppure off se e accesso o spento?

    come si può visualizzare su un textview? con ToString() non funziona

  5. #5
    Salve, e intentfilter contiene lo stato del display? come si può inserire in un text lo stato?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Rispondo solo ora alle tue domande:

    1) Tu non passi assolutamente nulla: il metodo onReceive() viene richiamato dal sistema quando viene scatenato uno dei due eventi (e sarà il sistema a passare gli oggetti giusti). Quando questo accade, verrà eseguito il tuo codice (quello che sta dentro al metodo onReceive() ).

    2 a) IntentFilter serve, come dice il nome, a "filtrare" gli eventi di tuo interesse: il sistema ad ogni secondo scatena una valanga di eventi di tipo diverso (notifiche per le varie App, modifiche al livello di batteria del dispositivo, cambiamenti del volume, rotazione dello schermo, attivazione / disattivazione di features [wifi / connessione dati / bluetooth / ecc], ecc). Tu sei interessato solo alla attivazione / disattivazione del display, quindi applichi al tuo Receiver uno (o più) IntentFilter che filtrerà / filtreranno solo gli eventi di tuo interesse.

    2 b) e 3) Io non capisco il senso di tutto questo. Se il display viene disattivato (e la tua applicazione va a finire in pausa), che senso ha scriverlo in una TextView? Tanto non la puoi vedere quella TextView, se il display è spento... se poi ci scrivi "Acceso" quando il display viene riattivato è ovvio che tu potrai vedere sempre e solo la scritta "Acceso"... quindi, cos'è che vuoi fare di preciso?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Come si prende solo lo stato del display, un esempio? , mi serve solo per controllare il tempo quando il display è acceso è spento .

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Se vuoi solo sapere se il display è acceso / spento:

    codice:
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    if ( pm.isInteractive() ) {
       // Il display è acceso
    }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    salve, io già lo avevo pensato ma lo controlla in automatico quando lo spengo il display all'interno del metodo OnCreate?

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ovviamente no.
    A meno che l'activity non venga killata per qualche ragione, il metodo onCreate viene eseguito una ed una sola volta alla creazione dell'Activity. Dopodichè, durante la sua normale esecuzione, tutto il ciclo di vita dell'Activity avviene tra onStart() e onStop().


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.