Red de conocimiento informático - Consumibles informáticos - Código fuente del apk del despertador

Código fuente del apk del despertador

No hables de construcción ambiental, solo habla de desarrollo.

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?

¿Es? ¿xml? versión="1.0 "? codificación = "utf-8"? gt

ltLinearLayout? xmlns: Android = "/apk/RES/Android "

android: orientación="vertical "

Android: layout_width = " fill_parent "

Android: layout_height = " fill _ parent "

Android: gravedad = " center_vertical "

gt

botón lt

android:id="@ id/timeBtn "

Android:layout_width="fill_parent"?

Android: diseño_height = " wrap_content "?

android: text="@string/time "

android: textSize="20sp "

/ gt

botón lt;

Android: id = " @ id/cancelAlarmBtn "

Android: layout_width = " fill_ parent "?

Android: diseño_height = " wrap_content "?

Android: text = " @ string/cancel alarm "

/ gt;

lt/linear design gt; El efecto es el siguiente:

3. Para modificar la actividad de Alarm.java, debe hacer varias cosas en la actividad:

Obtener dos componentes de botón en la interfaz y agregarlos. Los oyentes de eventos están vinculados 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

¿Público? ¿Vacío? onClick(ver?arg0)? {

Log.d(label,? "¿Hacer clic? ¿Eso? ¿Hora? ¿Botón? ¿Dónde? ¿Establecer? Hora");

calendar .settimeinmillis(system . hora actual en milisegundos(). );

¿Nuevo? TimePickerDialog(Alarm.this, new? TimePickerDialog. OnTimeSetListener()? {

@Override

public? void? onTimeSet(TimePicker? arg0,? int? h,? int? m )? {

//Actualizar la hora en el botón

timeBtn.setText(formatTime(h, m));

//Establecer la hora del calendario. , Sincroniza principalmente la fecha del calendario con la fecha actual.

calendar .settimeinmillis(system . current time millis());

//Establece la hora y los minutos del calendario. >

calendar.set(calendar.hora del día?h);

calendar.set(calendar.minuto,?m);

//cambiar segundos y milisegundos. se establecen en 0.

calendar.set(calendar.segundo,?0);

calendar.set(calendar.millisegundo,?0);

//Crear Intent y PendingIntent para llamar al administrador de alarmas.

Intent? =? New? contenido? =?contenido pendiente. get broadcast(alarm.this,?0,?intent?0);

//Obtener administrador de alarmas

AlarmManager? =?(Administrador de ALARMAS) 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),? Tostada. LENGTH_SHORT). 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 del selector de hora se crea como un cuadro de diálogo del selector 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>

Administrador de alarmas?(Administrador de alarmas)getsystem SERVICE(ALARMA _ SERVICIO);

administrador de alarmas

Toast.makeText(Alarma). .this,? "¡Alarma cancelada!", ?Toast. LENGTH_SHORT). show();

}

}); 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;

¿Aplicar? android: icono="@drawable/icon"? Android: etiqueta = " @ string/app_name " gt;

ltReceiver? android:nombre=".AlarmReceiver"? android:proceso=":remoto"? /gt;

ltActividad? android: name=".alert"

Android: label="@string/app_name">

lt filtro de intención>

ltaction? Android: nombre = "Android. Intención. Acción. Principal "? /gt;

¿categoría lt? Android: nombre = "Android. Intención. Categoría. Lanzador "? / gt;

lt/intent-filter gt;

lt/actividad gt;

lt/aplicación gt; -SDK? android:minSdkVersion="8"? /gt;

lt/manifest gt;?

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.