Estoy haciendo una aplicación patentada para una empresa que nunca la lanzará al Android Market (o Play Store, supongo ahora) en Ice Cream Sandwich (Android 4.0).Deshabilitar botón de inicio en Android ICS (4.0)
Necesito desactivar la página de inicio para que los usuarios no puedan desinstalar el software maliciosamente ni eliminar los datos que la aplicación capture. Esta última versión es la primera escrita en 4.0, las versiones anteriores fueron escritas en 2.2 y 3.2.
Para deshabilitar el botón de Inicio en 2.2, asocié la aplicación como un reemplazo del hogar, por lo que el botón acaba de reabrir la aplicación, pero ya no puedo usar este método, ya que eso nos impide realizar las actualizaciones de la aplicación . (no queremos dar al usuario la opción de volver a seleccionar un valor predeterminado de inicio, ya que ello conducirá a la eliminación de datos
el código que tengo para disableing el botón de inicio en 3.2 es:
@Override
public void onAttachedToWindow() {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
y, en onCreate:
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
Pero cuando ejecuto el mismo código que funcionaba en mi tableta 3.2, no funciona en mi tableta 4.0.
Me preguntaba si hay una API o método nuevo que 4.0 tenga que logre el mismo efecto que tengo actualmente en mi implementación 3.2.
Gracias por cualquier ayuda o dirección.
Adam
Tu aplicación se comporta como malware, ya que le quita el control del dispositivo al usuario. Android 4.0+ está diseñado para evitar eso exactamente. – Dubs