2013-05-28 1 views
0

Почему это, что я могу зарегистрировать вещательный приемник для «android.intent.action.ACTION_POWER_CONNECTED» с помощью файла манифеста, но не программно, используя следующие:Может получить ACTION_POWER_CONNECTED с помощью манифеста, но не программно

IntentFilter iFilter = new IntentFilter(); 
    iFilter.addAction("android.intent.action.ACTION_POWER_CONNECTED"); 
    registerReceiver(powerStateListener, iFilter); 

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

ответ

3

К сожалению, документация здесь немного тупо. Это на самом деле только задокументировано на ACTION_BATTERY_CHANGED:

Вы не можете получить это через компоненту, объявленную в манифестах, только явно зарегистрировавшись на него с Context.registerReceiver(). См ACTION_BATTERY_LOW, ACTION_BATTERY_OKAY, ACTION_POWER_CONNECTED, и ACTION_POWER_DISCONNECTED для различных батарей связанных передач , которые посылаются и может быть получен с помощью манифеста приемников

Так что, как я понимаю, в документации, ACTION_BATTERY_CHANGED может быть получена только путем зарегистрированный приемник, а ACTION_POWER_CONNECTED может быть получен только получателем, указанным в манифесте.

+1

Спасибо за ответ. Итак, подход «проб и ошибок» - единственный способ определить это для всех целей? – gonzobrains

Смежные вопросы