5

Escribo 1 aplicación para Android 4.0 y se inicia a través del receptor de difusión. Mi código es el siguiente:No se puede recibir la transmisión en ICS

En AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" /> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <receiver android:name="com.Android.Exercise.StartUpReceiver" 
      android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED"/> 
       <!--<action android:name="StartInstrument" /> 
       <action android:name="PrintControlName" />  -->  
      </intent-filter> 
     </receiver>   
     <service android:enabled="true" android:name="StartAUT_Service"> 
      <intent-filter> 
       <action android:name="com.Android.Exercise.StartAUT_Service" /> 
      </intent-filter> 
     </service> 
    </application> 

En la clase StartUpReceiver:

public class StartUpReceiver extends BroadcastReceiver{ 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     Log.i("Broadcast", "onReceive"); 

     Intent i = null; 

     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
      i = new Intent(context, StartAUT_Service.class);   
      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     } 

     context.startService(i);    
    }  
} 

Después me reinicia el dispositivo, no puedo recibir broardcast. favor me ayude, gracias tanto

Respuesta

1

Trate

<uses-permission android:name="android.intent.action.BOOT_COMPLETED" /> 

continuación de Internet utiliza el permiso

+0

Aunque agrego su etiqueta, aún no puedo recibir el comando de transmisión. En Android 2.2, está bien, pero Android 4.0, todavía no funciona. – user1266236

+0

Reinicié mi dispositivo pero todavía no ejecuta mi broadcast.hix | T_T | – user1266236

+0

¿eliminaste esa etiqueta de permiso en actividad? –

7

A partir de Android 3.0, se introdujo estado de la aplicación. Todas las aplicaciones ahora están instaladas con un estado configurado como inactivo, lo que hace que todos los BroadcastReceivers estén inactivos.

Para que el estado sea activo, el usuario debe iniciar la aplicación al menos una vez y el sistema operativo activará automáticamente la aplicación y todos sus BroadcastReceivers.

En su caso, debe agregar una actividad, ya sea un acuerdo de licencia o una página de ayuda. Esto creará un icono para su aplicación para que el usuario haga clic y active la aplicación.

Tenga en cuenta que el estado de la aplicación se establecerá en volver inactivo si el usuario fuerza la aplicación.

que se enfrentaron a un problema similar: Android ICS not receiving data sms

espero que resuelve su problema o al menos le pondrá en el camino correcto.

respecto, Ahmad

0

que tiene que hacer lo siguiente para superar this característica de seguridad.

Si su nivel de API está por debajo de 12, a continuación, establezca lo siguiente a su intención antes de transmitirlo:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 32); 

De lo contrario, agregue el siguiente indicador para incluir paquetes que están marcados como Detenido también:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent. FLAG_INCLUDE_STOPPED_PACKAGES); 
Cuestiones relacionadas