5

Piszę 1 aplikację dla systemu Android 4.0 i jest ona uruchamiana za pośrednictwem nadawcy-odbiornika. Moje kodu jest poniżej:Nie można odbierać transmisji w ICS

W 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> 

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

Po ponownym uruchomieniu mojego urządzenia, nie mogę odbierać broardcast. Proszę mi pomóc, dziękuję tyle

Odpowiedz

1

Spróbuj

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

poniżej internetowa wykorzystuje pozwolenie na

+0

Po dodaniu tagu, nadal nie mogę odbierać polecenia rozgłaszania. W systemie Android 2.2 jest ok, ale Android 4.0, nadal nie działa. – user1266236

+0

Ponownie uruchomiłem moje urządzenie, ale nadal nie działa moje broadcast.hix | T_T | – user1266236

+0

Usunąłeś ten tag uprawnień w ramach działania? –

7

Zaczynając od Androida 3.0, stan aplikacja została wprowadzona. Wszystkie aplikacje są teraz zainstalowane z ustawionym stanem nieaktywnym, co powoduje, że wszystkie jego BroadcastReceivers są nieaktywne.

Aby stan był aktywny, użytkownik musi uruchomić aplikację przynajmniej raz, a system operacyjny automatycznie aktywuje aplikację i wszystkie jej BroadcastReceivers.

W twoim przypadku musisz dodać działanie, czy to umowa licencyjna, czy strona pomocy. Spowoduje to utworzenie ikony dla Twojej aplikacji, aby użytkownik mógł kliknąć i aktywować aplikację.

Należy pamiętać, że stan aplikacji zostanie cofnięty, jeśli użytkownik wymusi zamknięcie aplikacji.

wychodził podobny problem: Android ICS not receiving data sms

Mam nadzieję, że rozwiąże problem lub przynajmniej można umieścić na dobrej drodze.

regards, Ahmad

0

Trzeba wykonać następujące czynności, aby przezwyciężyć this funkcję zabezpieczeń.

Jeśli poziom API jest poniżej 12, a następnie ustaw następujące opcje do swojej intencji przed nadawanie go:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 32); 

W przeciwnym razie, należy dodać następujące flagi włączenia pakietów, które są oznaczone jako Zatrzymany też:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent. FLAG_INCLUDE_STOPPED_PACKAGES); 
Powiązane problemy