¿Cómo configurar la alarma cuando el móvil ha estado inactivo usando android?
Hola Quiero configurar la alarma cuando el teléfono no ha sido tocado. Si la pantalla no se ha tocado durante casi 2 minutos, el sonido de la alarma se elevaría. ¿Cómo puedo hacer esto? ¿Puede alguien ayudarme? Gracias por adelantado.
- Error de sintaxis en el token "class"
- Eliminar la sombra de barra de notificación en la aplicación de Android
- Simple Thread Management - Java - Android
- Cargar imágenes de la carpeta de activos
- Android Studio necesita JDK 7 para Android-L mac
- Android: formato de fecha en una cadena
- Enviar mensaje udp desde el teléfono android a la PC (windows) no funciona
- LIBGDX ¿Es mejor usar spritesheet o imágenes individuales?
- ¿Cómo crear un directorio en Android?
- Error interno del servidor
- Cómo agregar actividad de SDK en Qt para Android
- iniciar gira virtual con gmaps v2 para android
- ¿Cómo implementar un singleton configurable?
Pase el AlarmService a través del siguiente código. Esto determinará cuánto tiempo ha estado su dispositivo inactivo.
idle.java
Handler hl_timeout = new Handler(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try{ hl_timeout.postDelayed(DoOnTimeOut, 15000); }catch(Exception e) { e.printStackTrace(); } } // Toast Thread DoOnTimeOut = new Thread() { public void run() { try{ Toast.makeText(getApplicationContext(), "System is idle", Toast.LENGTH_LONG).show(); }catch(Exception e) { e.printStackTrace(); } } }; @Override public void onUserInteraction() { super.onUserInteraction(); //Remove any previous callback try{ hl_timeout.removeCallbacks(DoOnTimeOut); hl_timeout.postDelayed(DoOnTimeOut, 15000); }catch(Exception e) { e.printStackTrace(); } }
Espero que esto te ayude.
Puede crear AlarmService para reproducir sonido incluso cuando la aplicación / dispositivo esté inactivo
Extender el método onUserInteraction de Activity Class para restablecer el temporizador y comenzar de nuevo durante dos minutos.
Si entiendo su pregunta correctamente, debe activar una alarma, cuando no hay ninguna interacción del usuario que haya ocurrido dentro de un intervalo de tiempo. Y uno de los requisitos principales, no hay actividad en ejecución en primer plano. Así que el caso con onUserInteraction no funciona para usted. En este caso aún puede recibir actualizaciones en cada acción de usuario si realiza su propio AccessibilityService.
Agregue esto a su manifiesto para declarar el servicio:
<service android:name=".MyAccessibilityService"> <intent-filter> <action android:name="android.accessibilityservice.AccessibilityService" /> </intent-filter> </service>
Y su implementación de servicios debe ser similar a esto:
public class MyAccessibilityService extends AccessibilityService { @Override public void onServiceConnected() { AccessibilityServiceInfo info = new AccessibilityServiceInfo(); // we are interested in all types of accessibility events info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK; info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC; // we want to receive events in a certain interval info.notificationTimeout = 100; setServiceInfo(info); Log.e("ALEX", "service connected!"); } @Override public void onAccessibilityEvent(AccessibilityEvent arg0) { Log.e("ALEX", "Event happened!"); } }
Ahora, cada vez que el usuario toque la pantalla por ejemplo, obtendrá onAccessibilityEvent () activado y podrá reiniciar un temporizador que lanzará su Alarma.
SIN EMBARGO, este enfoque tiene una desventaja: con el fin de que funcione, tendrá que ir a la configuración del teléfono -> Accesibilidad y habilitar su aplicación allí. De lo contrario, el sistema no iniciará su servicio.
- ¿Cómo acceder a widgets en una DialogPreference personalizada con un diseño inflado?
- Patrón de diseño MVC para el desarrollo de aplicaciones para Android usando Fragmentos como vistas y actividad como controlador