трансляция намеренного действия BOOT_COMPLETED не работает должным образом

У меня есть класс приемника, слушающий несколько действий, но он не может пойматьandroid.intent.action.BOOT_COMPLETED действие. Что я делаю не так? вот мой файл манифеста:



    
    
        
            
             
             
            
            
    
    

как можно видеть, я снова добавил разрешение в получателе, а имя получателя получает полное имя класса, как этоответ предлагает.

вот класс приемника вещания:

@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");
    }
}

Когда я запускаю приложение, получатель ловитandroid.intent.action.PACKAGE_REPLACED но когда я перезагружаю телефон приемник не ловит.BOOT_COMPLETED

Однако, когда я комментирую в.OtherReceiver вMainFest файл может его поймать!

вот код этого класса:

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");
    }

}   
}

так же, как и другой. Поэтому мой вопрос заключается в том, почему мне нужно определить отдельный приемник дляBOOT_COMPLETED действие?

Редактировать: Я также пытался отправить действие черезADB в соответствии сэтоти без какого-либо разрешения я мог поймать его сAppReceiver учебный класс:

am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n com.blubuk/.AppReciever

Ответы на вопрос(2)

Ваш ответ на вопрос