la difusión de la acción de intención BOOT_COMPLETED no funciona correctamente
Tengo una clase receptora escuchando varias acciones, pero no puedo captar laandroid.intent.action.BOOT_COMPLETED
acción. ¿Que estoy haciendo mal? Aquí está mi archivo de manifiesto:
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!--<receiver android:name=".OtherReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>-->
<receiver android:name="com.myApp.AppReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="com.myApp.wifitimer"/>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" android:path="com.myApp" />
</intent-filter>
</receiver>
Como se puede ver, agregué nuevamente el permiso dentro del receptor y el nombre del receptor recibe el nombre completo de la clase como estaresponder sugiere.
Aquí está la clase del receptor de difusión:
@Override
public void onReceive(Context arg0, Intent arg1) {
String action1 = arg1.getAction();
if(action1.equals(Intent.ACTION_BOOT_COMPLETED)) {
Log.d("receiver","action is: boot");
}
if(action1.equals("android.intent.action.PACKAGE_REPLACED")) {
Log.d("receiver","action is: package");
}
}
Cuando ejecuto la aplicación el receptor atrapa elandroid.intent.action.PACKAGE_REPLACED
pero cuando reinicio el teléfono el receptor no atrapa elBOOT_COMPLETED
.
Sin embargo cuando comento en el.OtherReceiver
en elMainfest archívalo puedes atraparlo!
Aquí está el código de esta clase:
public class OtherReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
String action = arg1.getAction();
if(action.equals(Intent.ACTION_BOOT_COMPLETED)) {
Log.d("new receiver","action is: boot");
}
}
}
igual que el otro. Así que mi pregunta es por qué necesito definir un receptor separado para elBOOT_COMPLETED
¿acción?
Editar: También traté de enviar la acción a través deadb de acuerdo aesta, y sin ningún permiso pude atraparlo con elAppReceiver clase:
am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n com.blubuk/.AppReciever