Подтвердить что ты не робот

Android: OnBootReceiver: экспортированный приемник не требует разрешения

Я создал BroadcastReceiver, который получает BOOT_COMPLETED.

В моем AndroidManifest.xml я добавил его так:

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

Однако я получаю предупреждение: Экспортированный получатель не требует разрешения. Я читал об этом на SO, но я не совсем понимаю.

Так может кто-нибудь объяснить этому начинающему:), почему я получаю это предупреждение и что делать против него (и почему)?

4b9b3361

Ответ 1

Предупреждение "Экспортированный приемник не требует разрешения" означает, У вас есть фильтр намерений с некоторым действием (что означает, что по умолчанию у вас установлен android: exported = "true", и теперь он может получать трансляции от ЛЮБОГО вещателей вне вашего приложения) Поскольку он может получать широковещательные передачи от ЛЮБОГО вещателей вне вашего приложения, он предупреждает вас, говоря: "Эй, вы уверены, что телеканал ЛЮБОЙ может вызывать вас? На мой взгляд, это лучше, если вы разрешаете только тем вещателям вызывать вас, у которого есть разрешение, которое вы установили для этого ресивера, через андроид: разрешение"

Надеюсь, что это ясно!

Ответ 2

Вы можете удалить это предупреждение, добавив android:exported="false" в тег приемника (см. этот ответ: fooobar.com/info/50905/...)