Autore Topic: Disabilitare tasto Home e nascondere StatusBar  (Letto 3188 volte)

Offline yagamiraito

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung I5500 corby
  • Sistema operativo:
    Windows 7
Disabilitare tasto Home e nascondere StatusBar
« il: 20 Dicembre 2011, 14:14:31 CET »
0
Ho la necessità di bloccare il tasto Home durante l'esecuzione dell'applicazione.

Nell' activity ho aggiunto

@Override
public void onAttachedToWindow()
{       
   this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);       
       super.onAttachedToWindow();
}

Questo funziona, ma se lo schermo viene spento e poi riacceso in alto esce fuori la statusbar.

Per togliere la statusbar ho messo Theme.Black.NoTitleBar.Fullscreen che normalmente funziona, ma se c'è onAttachedToWindows no rispunta fuori dopo lo psegnimento dello schermo.

E' possibile farlo?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Disabilitare tasto Home e nascondere StatusBar
« Risposta #1 il: 20 Dicembre 2011, 15:21:36 CET »
0
E' possibile farlo?

Se stai cercando di riprodurre una sorta di "KIOSK MODE", temo non sia possibile.

NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline yagamiraito

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung I5500 corby
  • Sistema operativo:
    Windows 7
Re:Disabilitare tasto Home e nascondere StatusBar
« Risposta #2 il: 21 Dicembre 2011, 20:02:08 CET »
0
Sì, l'idea sarebbe quella.
L'azienda distribuisce i telefoni ai dipendenti che devono utilizzarli solo e soltanto per l'applicazione.

Quello che ho fatto è stato:

- Aggiunto le category HOME, DEFAULT e LAUNCHER per la Main activity nel  manifest
- Tolto il blocco del tasto home per la main Activity
- Messo il blocco per i tasti back, search, option, e call nella mainactivity
- Messo i blocchi per i tasti home,back,search,option e call nelle altre actvities
- Messo FullScreen come tema nel manifest

Quello che ottengo attualmente è:

- Accendendo il telefono l'applicazione parte... OK

- Nella main activity i tasti search,option e call sono correttamente bloccati... OK

- Nella main activity se spengo e riaccendo lo schermo la status bar non scende più... OK

- Nella main activity se premo home una volta esce "concludi azione" con l'elenco delle possibili azioni. E' possibile non farlo uscire (anche cambiando impostazioni del telefono non da codice)?

- Nella main activity se premo home a lungo esce fuori l'elenco delle app aperte di recente. E' possibile non farlo uscire (anche cambiando impostazioni del telefono non da codice)?

- Nelle altre activity è tutto bloccato correttamente... OK

- In tutte le activity premendo endcall a lungo esce la lista delle opzioni (spegnimento, reboot,etc). Questo dovrei bloccarla o dovrei almeno riuscire a togliere/bloccare/rimuovere "modalità aereo" e "scelta profilo". E' possibile farlo anche non via codice?





Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Disabilitare tasto Home e nascondere StatusBar
« Risposta #3 il: 21 Dicembre 2011, 21:06:16 CET »
0
Mi spiace, non è possibile implementare un VERO "kiosk mode" su un android "normale". Servirebbe un Android modificato.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Zappescu

  • Utente junior
  • **
  • Post: 110
  • Respect: +7
    • Mostra profilo
    • Tic Tank Toe
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    Zapmobilegames
  • Sistema operativo:
    Win XP
Re:Disabilitare tasto Home e nascondere StatusBar
« Risposta #4 il: 22 Dicembre 2011, 09:05:11 CET »
0
Mi spiace, non è possibile implementare un VERO "kiosk mode" su un android "normale". Servirebbe un Android modificato.
Molte delle operazioni che hai descritto di voler fare sono disabilitate per Android. Google non ti fa mettere le mani proprio ovunque, ma come suggerisce Bradipao, se hai bisogno di qualcosa di completamente custom devi lavorare sul codice dell'OS e ricompilarti la tua versione. Per fortuna Android è open source.
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game

Offline yagamiraito

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung I5500 corby
  • Sistema operativo:
    Windows 7
Re:Disabilitare tasto Home e nascondere StatusBar
« Risposta #5 il: 22 Dicembre 2011, 19:52:38 CET »
0
Purtroppo per farmi un ROM personalizzata avrei bisogno di capacità e soprattutto tempo...   :-(

Ponendo che il menù potrebbe anche apparire ed essere funzionante, ma che l'utente da lì non possa però accedere al resto del telefono (Se preme "startcall" si apre il telefono con la status bar e da li può andare poi dove vuole) si può fare qualcosa?

Io pensavo di aggirare il problema facendo una cosa di questo tipo:

Fare un service che controlla se l'app è attiva o meno. Se non è attiva la lancia/riavvia.

In tutte le activity dell'app implementare onPause() e onDestroy()  nelle quali far avviare il service che riavvia l'app.

Se l'utente preme il bottone endcall a lungo esce il menù di opzioni. 
Premendo "startcall" apre il telefono, ma passando da onPause l'app viene riavviata.

E magari appena riparte impostare un profilo e disabilitare la modalità aereo. Questo da codice è possibile farlo?

E' un enorme cavolata o potrebbe funzionare ( o magari ci sono modi migliori per aggirare il problema senza dover ricompilare una versione ad hoc)??











Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Disabilitare tasto Home e nascondere StatusBar
« Risposta #6 il: 22 Dicembre 2011, 20:22:44 CET »
0
E' un enorme cavolata o potrebbe funzionare ( o magari ci sono modi migliori per aggirare il problema senza dover ricompilare una versione ad hoc)??

Può darsi che qualcosa di cosmetica molto simile a quello che descrivi sia possibile farlo. Però se intendi "impedire" qualcosa all'utente del telefono, non è proprio possibile, altrimenti ci sarebbero ovunque applicazioni "canaglia" che prendono il controllo dei telefoni.  :-P

Piuttosto, visto che si tratta di un ambito enterprise, potresti bloccare un po' di cose usando questo:
Device Administration | Android Developers
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store