Solicitud de patente para mini reloj despertador con programa
Los puntos clave para desarrollar un pequeño programa de despertador son:
1. Selector de hora
2. Consigue el administrador de despertador y configúralo.
3. Registre el receptor de transmisión
Después de dominar estos dos puntos, escribir un programa es muy sencillo.
1. Nuevo proyecto de Android: Alarma, SDK versión 2.2, nombre del paquete: com.lql.activity, actividad principal: Alarma.
2. Interfaz de escritura: modifique directamente el archivo main.xml en el diseño, el código es el siguiente:
¿Código XML?
<? ¿xml? versión="1.0 "? codificación = "utf-8"? & gt
& ltLinearLayout? xmlns:Android = "/apk/RES/Android "
android:orientation="vertical "
Android:layout _ width = " fill _ parent "
Android:layout _ height = " fill _ parent "
Android:gravity = " center _ vertical "
& gt
& botón lt
android:id="@+id/timeBtn "
Android:layout _ width = " fill _ parent "?
Android:layout_height = " wrap_content "?
android:text="@string/time "
android:textSize="20sp "
/& gt;
& botón lt
Android:id = " @+id/cancelAlarmBtn "
Android:layout _ width = " fill _ parent "?
Android:layout_height = " wrap_content "?
Android:text = " @ string/cancelar alarma "
/& gt;
& lt/diseño lineal & gt;
El efecto de la interfaz es el siguiente:
3. Para modificar la actividad de Alarm.java, debe hacer varias cosas en la actividad:
Activar dos componentes de botón. la interfaz y vincular detectores de eventos a ellos.
Haga clic en el botón de la primera hora y aparecerá un selector de hora que le permitirá seleccionar horas y minutos y configurar una alarma.
El segundo botón requiere el despertador configurado actualmente después de hacer clic en él.
El código más difícil de escribir es la configuración del despertador:
//Establecer la hora
Código Java
timeBtn.setOnClickListener (¿Nuevo? Botón .OnClickListener(){
@override
void ? onClick(view?arg0)?{
Log.d(? ¿Eso? Hora ? ¿Dónde? establecer? hora");
calendar.settimeinmillis();
¿Nuevo?TimePickerDialog(Alarm.this, ¿nuevo? TimePickerDialog? {
@ override
public? p>
//Actualizar la hora en el botón
timeBtn.setText(formatTime(h, m));
/ /Establecer la hora del calendario, principalmente para cambiar la hora del calendario. La fecha se sincroniza con la fecha actual
calendar .settimeinmillis(system . current time millis()); Establece la hora y los minutos del calendario
calendar.set(Calendar. ¿Una hora del día? h);
calendar.set(Calendar.
minuto,? m);
//Establece segundos y milisegundos en 0.
calendar.set(Calendar. Second,? 0);
calendar.set(Calendar. Millisegundo,? 0);
//Crear intención y PendingIntent para llamar al administrador de alarmas.
¿Intención? ¿intención? =?¿Nuevo? Intent(Alarm.this, alarm Receiver. class);
¿Contenido pendiente? ¿Contenido pendiente? =?contenido pendiente. obtener transmisión (alarma. esto,? 0,? intención? 0);
//Obtener el administrador de alarmas
¿AlarmManager? ¿Administrador de alarmas? =?(ALARM manager)getsystem SERVICE(ALARM _ SERVICE);
//Establecer despertador
alarmManager.set(AlarmManager.RTC_WAKEUP,?calendar.getTimeInMillis(),?pendingIntent ) ;
administrador de alarmas.establecer repetición (administrador de alarmas.RTC_WAKEUP,?calendar.getTimeInMillis(),?10*1000,?pendingIntent);
Toast.makeText(Alarm.this , ? "El tiempo para configurar la alarma es:"+cadena valor de(h)+":"+cadena valor de(m),? show();
Log.d(label,? "¿Configuración? ¿Eso? ¿Hora? ¿A?" + formatTime(h, m));
}
}, calendario.get(Calendario.HOUR_OF_DAY), calendario.get(Calendario.minutos), verdadero). show();
}
});
Hay comentarios en el código, así que no los explicaré aquí. El nuevo cuadro de diálogo de selección de hora se crea como un cuadro de diálogo de selección de hora. Para ver el efecto, agregué un recordatorio repetido al despertador: Alarm Clock Manager. setRepeat(alarmmanager.rtc_wakeup,calendar.gettimeinmillis(),10*1000,pending_intent);.
Agregue también un detector de eventos para el botón cancelar alarma:
Código Java
//Cancelar monitoreo de eventos del botón de alarma
¿Final? ¿Botón? cancelarAlarmBtn? =?(Button)findViewById(r . id . cancelalarmbtn);
cancelalarmbtn . setonclicklistener(new?Button.OnClickListener(){
@override
public. ? void ? onClick(view ? arg0) ? { ? Intención ? Contenido? =? obtener transmisión (alarm.this,?0,?intent?0);
//Obtener administrador de alarmas /p>
¿AlarmManager? alarmManager?( ALARM manager)getsystem SERVICE(ALARM _ SERVICE);
alarm manager cancel(contenido pendiente);
Toast.makeText(Alarm Manager). .this,? "¡Alarma cancelada!", ?Toast.LENGTH_SHORT). show();
}
});
Haga clic en el botón cancelar alarma. para cancelar la alarma previamente configurada. El código central es de 4 líneas.
4. Escriba un receptor de transmisión para recibir el evento de transmisión del despertador y luego realice el procesamiento relacionado.
Código Java
¿Público? ¿clase? ¿Receptor de alarma? ¿extender? ¿Receptor de transmisión? {
/*?(no Javadoc)?
*?@¿Lo viste? Contenido de Android. Receptor de transmisión # en recepción (Android. Contenido. Contexto, Android.content.Intent).
*/
@OVERRIDE
¿Público? ¿Vacío? onReceive(contexto?arg0,?intención?datos)? {
Log.d(Alarma. Etiqueta,? "¿Esa? ¿Hora? ¿En serio? ¿Levantarse, empezar? ¿Eso? Alarma...");
Toast.makeText(arg0 , "¡Hora de alarma!",?LENGTH_SHORT). show();
}
}
Este código es muy simple, ¿principalmente para herencia? BroadcastReceiver y luego anule el método onRecive. El método onRecive se ejecutará una vez que expire el tiempo de alarma. Aquí podremos hacer nuestras propias cosas, como iniciar programas o reproducir tonos de llamada. Sólo quiero recordarles rápidamente que las tostadas son para usar.
5. Registre el receptor de transmisión en el archivo AndroidManifest.xml de Android:
& lt manifest xmlns:Android = "/apk/RES/Android"
¿Código XML?
package="com.ql.activity "
android:versionCode="1 "
Android:nombre de versión = " 1.0 " & gt; p>
p>
& lt¿Aplicar? android:icono="@drawable/icono "? Android:label = " @ string/app _ nombre " >
<Receiver? android:nombre= ".AlarmReceiver"? android:proceso=":remoto "? /& gt;
& ltActividades? android:name = ".Alert"
Android:label = "@string/app_name" >
<Intent Filter>
<Action? Android:nombre = " Android . intención . acción . principal "? /& gt;
& ltCategoría? Android:nombre = "Android. Intención. Categoría. Lanzador "? /& gt;
& lt/intent-filter & gt;
& lt/actividad & gt;
& lt/aplicación & gt; p> p>
<Purpose-sdk? android:minSdkVersion="8"? /& gt;
& lt/manifiesto>?
La configuración principal es
El siguiente paso es probar en el simulador. La captura de pantalla en ejecución se muestra arriba. Consulte el archivo adjunto para ver el código fuente del programa.