Receptor de alarma y el manifiesto de Android
He encontrado varios tutoriales sobre la configuración del receptor de alarma para enviar un mensaje de brindis en intervalos establecidos. Y he estado siguiendo el código y dividido mi propio proyecto en 3 clases.
El HelloDroidActivity.java es:
- Cómo determinar si una de mis actividades está en primer plano
- Detectar la actualización de la aplicación de Android y establecer la clase de aplicación booleana para mostrar / ocultar el CLUF
- Android BroadcastReceiver no funciona después de la instalación
- Android BroadcastReceiver: ejecutarlo en el proceso por defecto o en uno nuevo?
- ¿Hay alguna manera de recibir una notificación cuando el usuario apaga el dispositivo?
package com.example.helloandroid; import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import android.widget.Toast; import com.example.helloandroid.alarms.MyAlarmReciever; public class HelloDroidActivity extends Activity { /** Called when the activity is first created. */ public static int RTC_WAKEUP; public static long INTERVAL_FIFTEEN_MINUTES; private AlarmManager alarmMgr; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello, Krishneel"); setContentView(tv); Toast.makeText(this, "Alarm went off", Toast.LENGTH_SHORT).show(); Log.d("OnCreate", "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"); alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(this, MyAlarmReciever.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.add(Calendar.SECOND, 5); alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 7000, pendingIntent); } }
También el MyAlarmReciever.java (ya soy consciente del error de ortografía en el nombre):
package com.example.helloandroid.alarms; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; import android.widget.Toast; public class MyAlarmReciever extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.e("onReceive", "ladskjflsakjdflskjdflskjdfslkjdflasdf"); Toast.makeText(context, "OnReceive alarm test", Toast.LENGTH_SHORT).show(); } }
Y el manifiesto de Android que se parece a esto:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloandroid" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name="com.example.helloandroid.HelloDroidActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="AlarmReceiver"> <intent-filter> <action android:name="com.example.helloandroid.alarms" /> </intent-filter> </receiver> </application> </manifest>
He leído que con el fin de obtener el proyecto para recibir mi alarmReceiver java clase Tengo que editar el manifiesto con un nuevo receptor. Pero soy bastante nuevo en XML y no sé qué dirección tomar.
- ¿Cómo detectar cuando el usuario activa / desactiva el estado del GPS?
- ¿Es posible escribir un receptor de difusión Android que detecte cuando el teléfono se despierta?
- BroadcastReceiver onReceive activado cuando se registra
- Android - BroadcastReceiver unregisterReceiver issue (not registered)
- Broadcast Receivers - WhatsApp y servicios similares
- BroadcastReceiver: set android: proceso de forma programática
- RTC_WAKEUP no funciona
- BroadcastReceiver no funciona cuando mato mi aplicación
Ya hay un receptor que ha definido en su archivo de manifiesto. Pero el nombre no es correcto ver el nombre debe ser el nombre completo de la clase, es decir, el nombre package.RecieverName. Y en su caso el nombre de su receptor es MyAlarmReciever. Así que el receptor se define como sigue
<receiver android:name=".alarms.MyAlarmReciever"> <intent-filter> <action android:name="com.example.helloandroid.alarms" /> </intent-filter> </receiver>
En su manifiesto, el receptor está escuchando una acción llamada com.example.helloandroid.alarms
. Pero en su HelloDroidActivity.java
no hay tal acción se añade a la intención.
public class HelloDroidActivity extends Activity { //.... @Override public void onCreate(Bundle savedInstanceState) { //.... Intent intent = new Intent(this, MyAlarmReciever.class); intent.setAction("com.example.helloandroid.alarms"); //.... } }
- Configuración de layout_width, layout_height mediante un estilo
- ¿Necesita el sistema operativo Android DNS?