2011-11-02 14 views
10

manifesto:Boot ricevitore non funziona

  <application android:icon="@drawable/icon" android:label="@string/app_name"> 
      <activity android:name=".AlarmActivity" 
         android:label="@string/app_name"> 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 
       </intent-filter> 
      </activity> 
      <receiver android:name="CallReciver"> 
       <intent-filter> 
        <action android:name="android.intent.action.PHONE_STATE"> 

</action> 
       </intent-filter> 
      </receiver> 
      <receiver android:name=".SmsReceiver"> 
       <intent-filter android:priority="1000"> 
        <action android:name= 
         "android.provider.Telephony.SMS_RECEIVED" /> 
       </intent-filter> 
      </receiver> 
      <receiver android:name=".OnBootReceiver"> 
      <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 
      <service 
       android:enabled="true" 
       android:name=".AlarmService"> 
      </service> 
     </application> 
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"> 
     </uses-permission> 
     <uses-permission android:name="android.permission.READ_PHONE_STATE"> 
     </uses-permission> 
     <uses-permission android:name="android.permission.WRITE_SMS"> 
     </uses-permission> 
     <uses-permission android:name="android.permission.READ_SMS"> 
     </uses-permission> 
     <uses-permission android:name="android.permission.SEND_SMS"> 
     </uses-permission> 
     <uses-permission android:name="android.permission.RECEIVE_SMS"> 
     </uses-permission> 
     <uses-permission android:name="android.permission.INTERNET"> 
     </uses-permission> 

Ricevitore:

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.util.Log; 
import android.widget.Toast; 

public class OnBootReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     Log.d("Test","booot"); 
     Toast.makeText(context, "Test", Toast.LENGTH_LONG).show(); 
    } 
} 

ricevitore non funziona. Spengo e accendo il mio dispositivo e non succede nulla. SMS e il destinatario di chiamata in questo progetto funzionano correttamente. Ricevitore SMS e CallReceviver: funziona bene. Primo post aggiornato - aggiunto manifest completo.

risposta

47

Se si dispone di un dispositivo HTC, è necessario anche effettuare la registrazione per "android.intent.action.QUICKBOOT_POWERON". Così la voce nel manifesto dovrebbe essere:

<receiver android:name=".OnBootReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
     </intent-filter> 
    </receiver>  

Sul mio HTC, se spengo il dispositivo e accenderlo per un po 'ho avuto QUICKBOOT_POWERON e non BOOT_COMPLETED.

Se spengo il dispositivo e rimuovo la batteria per un po ', ho ottenuto BOOT_COMPLETED dopo l'avvio.

+0

wow, questo è un post utile! – slinden77

6

permesso Put

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission> 
+0

Ce l'ho in manifest. – user1021984

+2

Hai messo il ricevitore nel tag applicazione del manifest – Rasel

+0

quale tag devo mettere? – user1021984

1

Prova questo ::

<receiver android:enabled="true" android:exported="true" 
     android:name=".OnBootReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 

Cin cin ... !!!

+0

Samsung A3 aveva bisogno del flag "attiva" e "esportato" per impostare su true, ma su Huawei 6P e altri 2 dispositivi penso che quelli fossero impostati su true per impostazione predefinita. Grazie Rohit per la soluzione :) –

3

Inoltre, sappi che in Android> = 3.1 l'app viene installata nello stato "arrestato" e non riceve gli eventi di avvio e arresto finché l'utente "fa qualcosa" con l'app almeno una volta. Vedi this post on the topic.

Problemi correlati