Permission Denial: not allowed to send broadcast in android

  • 2019 年 10 月 7 日
  • 筆記

因为最近项目里Intent用到了广播”android.intent.action.MEDIA_MOUNTED”, 结果被提示权限不足, 查了下原因, 是因为从4.4开始, 官方开始限制这个广播的使用, 加上了 protected权限, 只能系统内部使用. 如下:

   <protected-broadcast android:name="android.intent.action.MEDIA_MOUNTED" />

想想也在情理之中, 否则就是因为需要加载一张图片, 就需要重新挂载, 电量什么的岂不是嗖嗖的掉.

解决办法就是使用如下方法代替:

MediaScannerConnectionACTION_MEDIA_SCANNER_SCAN_FILE

MediaScannerConnection.scanFile(getApplicationContext(), new String[] { file.getAbsolutePath() }, null, new OnScanCompletedListener() {                    @Override                  public void onScanCompleted(String path, Uri uri) {                      // TODO Auto-generated method stub                    }              }); 

然后从谷歌找到了如下manifest, 方便需要的时候查找.

转自: https://android.googlesource.com/platform/frameworks/base/+/master/core/res/AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="android" coreApp="true" android:sharedUserId="android.uid.system"      android:sharedUserLabel="@string/android_system_label">      <!-- ================================================ -->      <!-- Special broadcasts that only the system can send -->      <!-- ================================================ -->      <eat-comment />      <protected-broadcast android:name="android.intent.action.SCREEN_OFF" />      <protected-broadcast android:name="android.intent.action.SCREEN_ON" />      <protected-broadcast android:name="android.intent.action.USER_PRESENT" />      <protected-broadcast android:name="android.intent.action.TIME_SET" />      <protected-broadcast android:name="android.intent.action.TIME_TICK" />      <protected-broadcast android:name="android.intent.action.TIMEZONE_CHANGED" />      <protected-broadcast android:name="android.intent.action.DATE_CHANGED" />      <protected-broadcast android:name="android.intent.action.PRE_BOOT_COMPLETED" />      <protected-broadcast android:name="android.intent.action.BOOT_COMPLETED" />      <protected-broadcast android:name="android.intent.action.PACKAGE_INSTALL" />      <protected-broadcast android:name="android.intent.action.PACKAGE_ADDED" />      <protected-broadcast android:name="android.intent.action.PACKAGE_REPLACED" />      <protected-broadcast android:name="android.intent.action.MY_PACKAGE_REPLACED" />      <protected-broadcast android:name="android.intent.action.PACKAGE_REMOVED" />      <protected-broadcast android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />      <protected-broadcast android:name="android.intent.action.PACKAGE_CHANGED" />      <protected-broadcast android:name="android.intent.action.PACKAGE_ENABLE_ROLLBACK" />      <protected-broadcast android:name="android.intent.action.CANCEL_ENABLE_ROLLBACK" />      <protected-broadcast android:name="android.intent.action.ROLLBACK_COMMITTED" />      <protected-broadcast android:name="android.intent.action.PACKAGE_RESTARTED" />      <protected-broadcast android:name="android.intent.action.PACKAGE_DATA_CLEARED" />      <protected-broadcast android:name="android.intent.action.PACKAGE_FIRST_LAUNCH" />      <protected-broadcast android:name="android.intent.action.PACKAGE_NEEDS_VERIFICATION" />      <protected-broadcast android:name="android.intent.action.PACKAGE_VERIFIED" />      <protected-broadcast android:name="android.intent.action.PACKAGES_SUSPENDED" />      <protected-broadcast android:name="android.intent.action.PACKAGES_UNSUSPENDED" />      <protected-broadcast android:name="android.intent.action.DISTRACTING_PACKAGES_CHANGED" />      <protected-broadcast android:name="android.intent.action.ACTION_PREFERRED_ACTIVITY_CHANGED" />      <protected-broadcast android:name="android.intent.action.UID_REMOVED" />      <protected-broadcast android:name="android.intent.action.QUERY_PACKAGE_RESTART" />      <protected-broadcast android:name="android.intent.action.CONFIGURATION_CHANGED" />      <protected-broadcast android:name="android.intent.action.SPLIT_CONFIGURATION_CHANGED" />      <protected-broadcast android:name="android.intent.action.LOCALE_CHANGED" />      <protected-broadcast android:name="android.intent.action.BATTERY_CHANGED" />      <protected-broadcast android:name="android.intent.action.BATTERY_LEVEL_CHANGED" />      <protected-broadcast android:name="android.intent.action.BATTERY_LOW" />      <protected-broadcast android:name="android.intent.action.BATTERY_OKAY" />      <protected-broadcast android:name="android.intent.action.ACTION_POWER_CONNECTED" />      <protected-broadcast android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />      <protected-broadcast android:name="android.intent.action.ACTION_SHUTDOWN" />      <protected-broadcast android:name="android.intent.action.CHARGING" />      <protected-broadcast android:name="android.intent.action.DISCHARGING" />      <protected-broadcast android:name="android.intent.action.DEVICE_STORAGE_LOW" />      <protected-broadcast android:name="android.intent.action.DEVICE_STORAGE_OK" />      <protected-broadcast android:name="android.intent.action.DEVICE_STORAGE_FULL" />      <protected-broadcast android:name="android.intent.action.DEVICE_STORAGE_NOT_FULL" />      <protected-broadcast android:name="android.intent.action.NEW_OUTGOING_CALL" />      <protected-broadcast android:name="android.intent.action.REBOOT" />      <protected-broadcast android:name="android.intent.action.DOCK_EVENT" />      <protected-broadcast android:name="android.intent.action.THERMAL_EVENT" />      <protected-broadcast android:name="android.intent.action.MASTER_CLEAR_NOTIFICATION" />      <protected-broadcast android:name="android.intent.action.USER_ADDED" />      <protected-broadcast android:name="android.intent.action.USER_REMOVED" />      <protected-broadcast android:name="android.intent.action.USER_STARTING" />      <protected-broadcast android:name="android.intent.action.USER_STARTED" />      <protected-broadcast android:name="android.intent.action.USER_STOPPING" />      <protected-broadcast android:name="android.intent.action.USER_STOPPED" />      <protected-broadcast android:name="android.intent.action.USER_BACKGROUND" />      <protected-broadcast android:name="android.intent.action.USER_FOREGROUND" />      <protected-broadcast android:name="android.intent.action.USER_SWITCHED" />      <protected-broadcast android:name="android.intent.action.USER_INITIALIZE" />      <protected-broadcast android:name="android.intent.action.INTENT_FILTER_NEEDS_VERIFICATION" />      <protected-broadcast android:name="android.intent.action.OVERLAY_ADDED" />      <protected-broadcast android:name="android.intent.action.OVERLAY_CHANGED" />      <protected-broadcast android:name="android.intent.action.OVERLAY_REMOVED" />      <protected-broadcast android:name="android.intent.action.OVERLAY_PRIORITY_CHANGED" />      <protected-broadcast android:name="android.intent.action.USER_ACTIVITY_NOTIFICATION" />      <protected-broadcast android:name="android.intent.action.MY_PACKAGE_SUSPENDED" />      <protected-broadcast android:name="android.intent.action.MY_PACKAGE_UNSUSPENDED" />      <protected-broadcast android:name="android.os.action.POWER_SAVE_MODE_CHANGED" />      <protected-broadcast android:name="android.os.action.POWER_SAVE_MODE_CHANGING" />      <protected-broadcast android:name="android.os.action.DEVICE_IDLE_MODE_CHANGED" />      <protected-broadcast android:name="android.os.action.POWER_SAVE_WHITELIST_CHANGED" />      <protected-broadcast android:name="android.os.action.POWER_SAVE_TEMP_WHITELIST_CHANGED" />      <protected-broadcast android:name="android.os.action.POWER_SAVE_MODE_CHANGED_INTERNAL" />      <!-- @deprecated This is rarely used and will be phased out soon. -->      <protected-broadcast android:name="android.os.action.SCREEN_BRIGHTNESS_BOOST_CHANGED" />      <protected-broadcast android:name="android.app.action.ENTER_CAR_MODE" />      <protected-broadcast android:name="android.app.action.EXIT_CAR_MODE" />      <protected-broadcast android:name="android.app.action.ENTER_DESK_MODE" />      <protected-broadcast android:name="android.app.action.EXIT_DESK_MODE" />      <protected-broadcast android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />      <protected-broadcast android:name="android.app.action.BUGREPORT_SHARING_DECLINED" />      <protected-broadcast android:name="android.app.action.BUGREPORT_FAILED" />      <protected-broadcast android:name="android.app.action.BUGREPORT_SHARE" />      <protected-broadcast android:name="android.app.action.SHOW_DEVICE_MONITORING_DIALOG" />      <protected-broadcast android:name="android.intent.action.PENDING_INCIDENT_REPORTS_CHANGED" />      <protected-broadcast android:name="android.intent.action.INCIDENT_REPORT_READY" />      <protected-broadcast android:name="android.appwidget.action.APPWIDGET_UPDATE_OPTIONS" />      <protected-broadcast android:name="android.appwidget.action.APPWIDGET_DELETED" />      <protected-broadcast android:name="android.appwidget.action.APPWIDGET_DISABLED" />      <protected-broadcast android:name="android.appwidget.action.APPWIDGET_ENABLED" />      <protected-broadcast android:name="android.appwidget.action.APPWIDGET_HOST_RESTORED" />      <protected-broadcast android:name="android.appwidget.action.APPWIDGET_RESTORED" />      <protected-broadcast android:name="android.os.action.SETTING_RESTORED" />      <protected-broadcast android:name="android.app.backup.intent.RUN" />      <protected-broadcast android:name="android.app.backup.intent.CLEAR" />      <protected-broadcast android:name="android.app.backup.intent.INIT" />      <protected-broadcast android:name="android.bluetooth.intent.DISCOVERABLE_TIMEOUT" />      <protected-broadcast android:name="android.bluetooth.adapter.action.STATE_CHANGED" />      <protected-broadcast android:name="android.bluetooth.adapter.action.SCAN_MODE_CHANGED" />      <protected-broadcast android:name="android.bluetooth.adapter.action.DISCOVERY_STARTED" />      <protected-broadcast android:name="android.bluetooth.adapter.action.DISCOVERY_FINISHED" />      <protected-broadcast android:name="android.bluetooth.adapter.action.LOCAL_NAME_CHANGED" />      <protected-broadcast android:name="android.bluetooth.adapter.action.BLUETOOTH_ADDRESS_CHANGED" />      <protected-broadcast android:name="android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast android:name="android.bluetooth.device.action.UUID" />      <protected-broadcast android:name="android.bluetooth.device.action.MAS_INSTANCE" />      <protected-broadcast android:name="android.bluetooth.device.action.ALIAS_CHANGED" />      <protected-broadcast android:name="android.bluetooth.device.action.FOUND" />      <protected-broadcast android:name="android.bluetooth.device.action.CLASS_CHANGED" />      <protected-broadcast android:name="android.bluetooth.device.action.ACL_CONNECTED" />      <protected-broadcast android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" />      <protected-broadcast android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />      <protected-broadcast android:name="android.bluetooth.device.action.NAME_CHANGED" />      <protected-broadcast android:name="android.bluetooth.device.action.BOND_STATE_CHANGED" />      <protected-broadcast android:name="android.bluetooth.device.action.NAME_FAILED" />      <protected-broadcast android:name="android.bluetooth.device.action.PAIRING_REQUEST" />      <protected-broadcast android:name="android.bluetooth.device.action.PAIRING_CANCEL" />      <protected-broadcast android:name="android.bluetooth.device.action.CONNECTION_ACCESS_REPLY" />      <protected-broadcast android:name="android.bluetooth.device.action.CONNECTION_ACCESS_CANCEL" />      <protected-broadcast android:name="android.bluetooth.device.action.CONNECTION_ACCESS_REQUEST" />      <protected-broadcast android:name="android.bluetooth.device.action.SDP_RECORD" />      <protected-broadcast android:name="android.bluetooth.device.action.BATTERY_LEVEL_CHANGED" />      <protected-broadcast android:name="android.bluetooth.devicepicker.action.LAUNCH" />      <protected-broadcast android:name="android.bluetooth.devicepicker.action.DEVICE_SELECTED" />      <protected-broadcast          android:name="android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.headset.action.VENDOR_SPECIFIC_HEADSET_EVENT" />      <protected-broadcast          android:name="android.bluetooth.headset.action.HF_INDICATORS_VALUE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.headset.profile.action.ACTIVE_DEVICE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.headsetclient.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.headsetclient.profile.action.AUDIO_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.headsetclient.profile.action.AG_EVENT" />      <protected-broadcast          android:name="android.bluetooth.headsetclient.profile.action.AG_CALL_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.headsetclient.profile.action.RESULT" />      <protected-broadcast          android:name="android.bluetooth.headsetclient.profile.action.LAST_VTAG" />      <protected-broadcast          android:name="android.bluetooth.hearingaid.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.hearingaid.profile.action.PLAYING_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.hearingaid.profile.action.ACTIVE_DEVICE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.a2dp.profile.action.ACTIVE_DEVICE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.a2dp.profile.action.PLAYING_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.a2dp.profile.action.CODEC_CONFIG_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.a2dp-sink.profile.action.PLAYING_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.a2dp-sink.profile.action.AUDIO_CONFIG_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.avrcp-controller.profile.action.BROWSE_CONNECTION_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.avrcp-controller.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.avrcp-controller.profile.action.FOLDER_LIST" />      <protected-broadcast          android:name="android.bluetooth.avrcp-controller.profile.action.TRACK_EVENT" />      <protected-broadcast          android:name="android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.input.profile.action.IDLE_TIME_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.input.profile.action.PROTOCOL_MODE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.input.profile.action.VIRTUAL_UNPLUG_STATUS" />      <protected-broadcast          android:name="android.bluetooth.hiddevice.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast          android:name="android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast android:name="android.bluetooth.mapmce.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast android:name="android.bluetooth.mapmce.profile.action.MESSAGE_RECEIVED" />      <protected-broadcast android:name="android.bluetooth.mapmce.profile.action.MESSAGE_SENT_SUCCESSFULLY" />      <protected-broadcast android:name="android.bluetooth.mapmce.profile.action.MESSAGE_DELIVERED_SUCCESSFULLY" />      <protected-broadcast          android:name="com.android.bluetooth.BluetoothMapContentObserver.action.MESSAGE_SENT" />      <protected-broadcast          android:name="com.android.bluetooth.BluetoothMapContentObserver.action.MESSAGE_DELIVERY" />      <protected-broadcast          android:name="android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast android:name="android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast android:name="android.bluetooth.pbapclient.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast android:name="android.bluetooth.sap.profile.action.CONNECTION_STATE_CHANGED" />      <protected-broadcast android:name="android.btopp.intent.action.INCOMING_FILE_NOTIFICATION" />      <protected-broadcast android:name="android.btopp.intent.action.USER_CONFIRMATION_TIMEOUT" />      <protected-broadcast android:name="android.btopp.intent.action.LIST" />      <protected-broadcast android:name="android.btopp.intent.action.OPEN_OUTBOUND" />      <protected-broadcast android:name="android.btopp.intent.action.HIDE_COMPLETE" />      <protected-broadcast android:name="android.btopp.intent.action.CONFIRM" />      <protected-broadcast android:name="android.btopp.intent.action.HIDE" />      <protected-broadcast android:name="android.btopp.intent.action.RETRY" />      <protected-broadcast android:name="android.btopp.intent.action.OPEN" />      <protected-broadcast android:name="android.btopp.intent.action.OPEN_INBOUND" />      <protected-broadcast android:name="android.btopp.intent.action.TRANSFER_COMPLETE" />      <protected-broadcast android:name="android.btopp.intent.action.ACCEPT" />      <protected-broadcast android:name="android.btopp.intent.action.DECLINE" />      <protected-broadcast android:name="com.android.bluetooth.gatt.REFRESH_BATCHED_SCAN" />      <protected-broadcast android:name="com.android.bluetooth.pbap.authchall" />      <protected-broadcast android:name="com.android.bluetooth.pbap.userconfirmtimeout" />      <protected-broadcast android:name="com.android.bluetooth.pbap.authresponse" />      <protected-broadcast android:name="com.android.bluetooth.pbap.authcancelled" />      <protected-broadcast android:name="com.android.bluetooth.sap.USER_CONFIRM_TIMEOUT" />      <protected-broadcast android:name="com.android.bluetooth.sap.action.DISCONNECT_ACTION" />      <protected-broadcast android:name="android.hardware.display.action.WIFI_DISPLAY_STATUS_CHANGED" />      <protected-broadcast android:name="android.hardware.usb.action.USB_STATE" />      <protected-broadcast android:name="android.hardware.usb.action.USB_PORT_CHANGED" />      <protected-broadcast android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />      <protected-broadcast android:name="android.hardware.usb.action.USB_ACCESSORY_DETACHED" />      <protected-broadcast android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />      <protected-broadcast android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />      <protected-broadcast android:name="android.intent.action.HEADSET_PLUG" />      <protected-broadcast android:name="android.media.action.HDMI_AUDIO_PLUG" />      <protected-broadcast android:name="android.media.action.MICROPHONE_MUTE_CHANGED" />      <protected-broadcast android:name="android.media.action.SPEAKERPHONE_STATE_CHANGED" />      <protected-broadcast android:name="android.media.AUDIO_BECOMING_NOISY" />      <protected-broadcast android:name="android.media.RINGER_MODE_CHANGED" />      <protected-broadcast android:name="android.media.VIBRATE_SETTING_CHANGED" />      <protected-broadcast android:name="android.media.VOLUME_CHANGED_ACTION" />      <protected-broadcast android:name="android.media.MASTER_VOLUME_CHANGED_ACTION" />      <protected-broadcast android:name="android.media.MASTER_MUTE_CHANGED_ACTION" />      <protected-broadcast android:name="android.media.MASTER_MONO_CHANGED_ACTION" />      <protected-broadcast android:name="android.media.MASTER_BALANCE_CHANGED_ACTION" />      <protected-broadcast android:name="android.media.SCO_AUDIO_STATE_CHANGED" />      <protected-broadcast android:name="android.media.ACTION_SCO_AUDIO_STATE_UPDATED" />      <protected-broadcast android:name="android.intent.action.MEDIA_REMOVED" />      <protected-broadcast android:name="android.intent.action.MEDIA_UNMOUNTED" />      <protected-broadcast android:name="android.intent.action.MEDIA_CHECKING" />      <protected-broadcast android:name="android.intent.action.MEDIA_NOFS" />      <protected-broadcast android:name="android.intent.action.MEDIA_MOUNTED" />      <protected-broadcast android:name="android.intent.action.MEDIA_SHARED" />      <protected-broadcast android:name="android.intent.action.MEDIA_UNSHARED" />      <protected-broadcast android:name="android.intent.action.MEDIA_BAD_REMOVAL" />      <protected-broadcast android:name="android.intent.action.MEDIA_UNMOUNTABLE" />      <protected-broadcast android:name="android.intent.action.MEDIA_EJECT" />      <protected-broadcast android:name="android.net.conn.CAPTIVE_PORTAL" />      <protected-broadcast android:name="android.net.conn.CONNECTIVITY_CHANGE" />      <!-- @deprecated.  Only {@link android.net.ConnectivityManager.CONNECTIVITY_ACTION} is sent. -->      <protected-broadcast android:name="android.net.conn.CONNECTIVITY_CHANGE_IMMEDIATE" />      <protected-broadcast android:name="android.net.conn.DATA_ACTIVITY_CHANGE" />      <protected-broadcast android:name="android.net.conn.RESTRICT_BACKGROUND_CHANGED" />      <protected-broadcast android:name="android.net.conn.BACKGROUND_DATA_SETTING_CHANGED" />      <protected-broadcast android:name="android.net.conn.CAPTIVE_PORTAL_TEST_COMPLETED" />      <protected-broadcast android:name="android.net.nsd.STATE_CHANGED" />      <protected-broadcast android:name="android.nfc.action.ADAPTER_STATE_CHANGED" />      <protected-broadcast android:name="android.nfc.action.TRANSACTION_DETECTED" />      <protected-broadcast android:name="com.android.nfc.action.LLCP_UP" />      <protected-broadcast android:name="com.android.nfc.action.LLCP_DOWN" />      <protected-broadcast android:name="com.android.nfc.cardemulation.action.CLOSE_TAP_DIALOG" />      <protected-broadcast android:name="com.android.nfc.handover.action.ALLOW_CONNECT" />      <protected-broadcast android:name="com.android.nfc.handover.action.DENY_CONNECT" />      <protected-broadcast android:name="com.android.nfc.handover.action.TIMEOUT_CONNECT" />      <protected-broadcast android:name="com.android.nfc_extras.action.RF_FIELD_ON_DETECTED" />      <protected-broadcast android:name="com.android.nfc_extras.action.RF_FIELD_OFF_DETECTED" />      <protected-broadcast android:name="com.android.nfc_extras.action.AID_SELECTED" />      <!-- For NFC to BT handover -->      <protected-broadcast android:name="android.btopp.intent.action.WHITELIST_DEVICE" />      <protected-broadcast android:name="android.btopp.intent.action.STOP_HANDOVER_TRANSFER" />      <protected-broadcast android:name="android.nfc.handover.intent.action.HANDOVER_SEND" />      <protected-broadcast android:name="android.nfc.handover.intent.action.HANDOVER_SEND_MULTIPLE" />      <protected-broadcast android:name="com.android.nfc.handover.action.CANCEL_HANDOVER_TRANSFER" />      <protected-broadcast android:name="android.intent.action.CLEAR_DNS_CACHE" />      <protected-broadcast android:name="android.intent.action.PROXY_CHANGE" />      <protected-broadcast android:name="android.os.UpdateLock.UPDATE_LOCK_CHANGED" />      <protected-broadcast android:name="android.intent.action.DREAMING_STARTED" />      <protected-broadcast android:name="android.intent.action.DREAMING_STOPPED" />      <protected-broadcast android:name="android.intent.action.ANY_DATA_STATE" />      <protected-broadcast android:name="com.android.server.stats.action.TRIGGER_COLLECTION" />      <protected-broadcast android:name="com.android.server.WifiManager.action.START_SCAN" />      <protected-broadcast android:name="com.android.server.WifiManager.action.START_PNO" />      <protected-broadcast android:name="com.android.server.WifiManager.action.DELAYED_DRIVER_STOP" />      <protected-broadcast android:name="com.android.server.WifiManager.action.DEVICE_IDLE" />      <protected-broadcast android:name="com.android.server.action.REMOTE_BUGREPORT_SHARING_ACCEPTED" />      <protected-broadcast android:name="com.android.server.action.REMOTE_BUGREPORT_SHARING_DECLINED" />      <protected-broadcast android:name="com.android.internal.action.EUICC_FACTORY_RESET" />      <protected-broadcast android:name="com.android.server.usb.ACTION_OPEN_IN_APPS" />      <protected-broadcast android:name="com.android.server.am.DELETE_DUMPHEAP" />      <protected-broadcast android:name="com.android.server.net.action.SNOOZE_WARNING" />      <protected-broadcast android:name="com.android.server.net.action.SNOOZE_RAPID" />      <protected-broadcast android:name="com.android.server.wifi.ConnectToNetworkNotification.USER_DISMISSED_NOTIFICATION" />      <protected-broadcast android:name="com.android.server.wifi.ConnectToNetworkNotification.CONNECT_TO_NETWORK" />      <protected-broadcast android:name="com.android.server.wifi.ConnectToNetworkNotification.PICK_WIFI_NETWORK" />      <protected-broadcast android:name="com.android.server.wifi.ConnectToNetworkNotification.PICK_NETWORK_AFTER_FAILURE" />      <protected-broadcast android:name="com.android.server.wifi.wakeup.DISMISS_NOTIFICATION" />      <protected-broadcast android:name="com.android.server.wifi.wakeup.OPEN_WIFI_PREFERENCES" />      <protected-broadcast android:name="com.android.server.wifi.wakeup.OPEN_WIFI_SETTINGS" />      <protected-broadcast android:name="com.android.server.wifi.wakeup.TURN_OFF_WIFI_WAKE" />      <protected-broadcast android:name="android.net.wifi.WIFI_STATE_CHANGED" />      <protected-broadcast android:name="android.net.wifi.WIFI_AP_STATE_CHANGED" />      <protected-broadcast android:name="android.net.wifi.WIFI_CREDENTIAL_CHANGED" />      <protected-broadcast android:name="android.net.wifi.WIFI_SCAN_AVAILABLE" />      <protected-broadcast android:name="android.net.wifi.aware.action.WIFI_AWARE_STATE_CHANGED" />      <protected-broadcast android:name="android.net.wifi.rtt.action.WIFI_RTT_STATE_CHANGED" />      <protected-broadcast android:name="android.net.wifi.SCAN_RESULTS" />      <protected-broadcast android:name="android.net.wifi.RSSI_CHANGED" />      <protected-broadcast android:name="android.net.wifi.STATE_CHANGE" />      <protected-broadcast android:name="android.net.wifi.LINK_CONFIGURATION_CHANGED" />      <protected-broadcast android:name="android.net.wifi.CONFIGURED_NETWORKS_CHANGE" />      <protected-broadcast android:name="android.net.wifi.action.PASSPOINT_DEAUTH_IMMINENT" />      <protected-broadcast android:name="android.net.wifi.action.PASSPOINT_ICON" />      <protected-broadcast android:name="android.net.wifi.action.PASSPOINT_OSU_PROVIDERS_LIST" />      <protected-broadcast android:name="android.net.wifi.action.PASSPOINT_SUBSCRIPTION_REMEDIATION" />      <protected-broadcast android:name="android.net.wifi.action.PASSPOINT_LAUNCH_OSU_VIEW" />      <protected-broadcast android:name="android.net.wifi.action.WIFI_NETWORK_SUGGESTION_POST_CONNECTION" />      <protected-broadcast android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" />      <protected-broadcast android:name="android.net.wifi.supplicant.STATE_CHANGE" />      <protected-broadcast android:name="android.net.wifi.p2p.STATE_CHANGED" />      <protected-broadcast android:name="android.net.wifi.p2p.DISCOVERY_STATE_CHANGE" />      <protected-broadcast android:name="android.net.wifi.p2p.THIS_DEVICE_CHANGED" />      <protected-broadcast android:name="android.net.wifi.p2p.PEERS_CHANGED" />      <protected-broadcast android:name="android.net.wifi.p2p.CONNECTION_STATE_CHANGE" />      <protected-broadcast android:name="android.net.wifi.p2p.PERSISTENT_GROUPS_CHANGED" />      <protected-broadcast android:name="android.net.conn.TETHER_STATE_CHANGED" />      <protected-broadcast android:name="android.net.conn.INET_CONDITION_ACTION" />      <protected-broadcast android:name="android.net.conn.NETWORK_CONDITIONS_MEASURED" />      <protected-broadcast              android:name="android.net.ConnectivityService.action.PKT_CNT_SAMPLE_INTERVAL_ELAPSED" />      <protected-broadcast android:name="android.net.scoring.SCORE_NETWORKS" />      <protected-broadcast android:name="android.net.scoring.SCORER_CHANGED" />      <protected-broadcast android:name="android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE" />      <protected-broadcast android:name="android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE" />      <protected-broadcast android:name="android.intent.action.AIRPLANE_MODE" />      <protected-broadcast android:name="android.intent.action.ADVANCED_SETTINGS" />      <protected-broadcast android:name="android.intent.action.APPLICATION_RESTRICTIONS_CHANGED" />      <!-- Legacy -->      <protected-broadcast android:name="android.intent.action.ACTION_IDLE_MAINTENANCE_START" />      <protected-broadcast android:name="android.intent.action.ACTION_IDLE_MAINTENANCE_END" />      <protected-broadcast android:name="com.android.server.ACTION_TRIGGER_IDLE" />      <protected-broadcast android:name="android.intent.action.HDMI_PLUGGED" />      <protected-broadcast android:name="android.intent.action.PHONE_STATE" />      <protected-broadcast android:name="android.intent.action.SUB_DEFAULT_CHANGED" />      <protected-broadcast android:name="android.location.PROVIDERS_CHANGED" />      <protected-broadcast android:name="android.location.MODE_CHANGED" />      <protected-broadcast android:name="android.net.proxy.PAC_REFRESH" />      <protected-broadcast android:name="android.telecom.action.DEFAULT_DIALER_CHANGED" />      <protected-broadcast android:name="android.provider.action.DEFAULT_SMS_PACKAGE_CHANGED" />      <protected-broadcast android:name="android.provider.action.SMS_MMS_DB_CREATED" />      <protected-broadcast android:name="android.provider.action.SMS_MMS_DB_LOST" />      <protected-broadcast android:name="android.intent.action.CONTENT_CHANGED" />      <protected-broadcast android:name="android.provider.Telephony.MMS_DOWNLOADED" />      <protected-broadcast          android:name="com.android.server.connectivityservice.CONNECTED_TO_PROVISIONING_NETWORK_ACTION" />      <!-- Defined in RestrictionsManager -->      <protected-broadcast          android:name="android.intent.action.PERMISSION_RESPONSE_RECEIVED" />      <!-- Defined in RestrictionsManager -->      <protected-broadcast android:name="android.intent.action.REQUEST_PERMISSION" />      <protected-broadcast android:name="android.nfc.handover.intent.action.HANDOVER_STARTED" />      <protected-broadcast android:name="android.nfc.handover.intent.action.TRANSFER_DONE" />      <protected-broadcast android:name="android.nfc.handover.intent.action.TRANSFER_PROGRESS" />      <protected-broadcast android:name="android.nfc.handover.intent.action.TRANSFER_DONE" />      <protected-broadcast android:name="android.intent.action.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED" />      <protected-broadcast android:name="android.intent.action.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED" />      <protected-broadcast android:name="android.intent.action.ACTION_SUBINFO_CONTENT_CHANGE" />      <protected-broadcast android:name="android.intent.action.ACTION_SUBINFO_RECORD_UPDATED" />      <protected-broadcast android:name="android.intent.action.ACTION_SET_RADIO_CAPABILITY_DONE" />      <protected-broadcast android:name="android.intent.action.ACTION_SET_RADIO_CAPABILITY_FAILED" />      <protected-broadcast android:name="android.internal.policy.action.BURN_IN_PROTECTION" />      <protected-broadcast android:name="android.app.action.SYSTEM_UPDATE_POLICY_CHANGED" />      <protected-broadcast android:name="android.app.action.DEVICE_OWNER_CHANGED" />      <protected-broadcast android:name="android.app.action.MANAGED_USER_CREATED" />      <!-- Added in N -->      <protected-broadcast android:name="android.intent.action.ANR" />      <protected-broadcast android:name="android.intent.action.CALL" />      <protected-broadcast android:name="android.intent.action.CALL_PRIVILEGED" />      <protected-broadcast android:name="android.intent.action.DROPBOX_ENTRY_ADDED" />      <protected-broadcast android:name="android.intent.action.INPUT_METHOD_CHANGED" />      <protected-broadcast android:name="android.intent.action.internal_sim_state_changed" />      <protected-broadcast android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />      <protected-broadcast android:name="android.intent.action.PRECISE_CALL_STATE" />      <protected-broadcast android:name="android.intent.action.PRECISE_DATA_CONNECTION_STATE_CHANGED" />      <protected-broadcast android:name="android.intent.action.SUBSCRIPTION_PHONE_STATE" />      <protected-broadcast android:name="android.intent.action.USER_INFO_CHANGED" />      <protected-broadcast android:name="android.intent.action.USER_UNLOCKED" />      <protected-broadcast android:name="android.intent.action.WALLPAPER_CHANGED" />      <protected-broadcast android:name="android.app.action.DEVICE_POLICY_MANAGER_STATE_CHANGED" />      <protected-broadcast android:name="android.app.action.CHOOSE_PRIVATE_KEY_ALIAS" />      <protected-broadcast android:name="android.app.action.DEVICE_ADMIN_DISABLED" />      <protected-broadcast android:name="android.app.action.DEVICE_ADMIN_DISABLE_REQUESTED" />      <protected-broadcast android:name="android.app.action.DEVICE_ADMIN_ENABLED" />      <protected-broadcast android:name="android.app.action.LOCK_TASK_ENTERING" />      <protected-broadcast android:name="android.app.action.LOCK_TASK_EXITING" />      <protected-broadcast android:name="android.app.action.NOTIFY_PENDING_SYSTEM_UPDATE" />      <protected-broadcast android:name="android.app.action.ACTION_PASSWORD_CHANGED" />      <protected-broadcast android:name="android.app.action.ACTION_PASSWORD_EXPIRING" />      <protected-broadcast android:name="android.app.action.ACTION_PASSWORD_FAILED" />      <protected-broadcast android:name="android.app.action.ACTION_PASSWORD_SUCCEEDED" />      <protected-broadcast android:name="com.android.server.ACTION_EXPIRED_PASSWORD_NOTIFICATION" />      <protected-broadcast android:name="android.intent.action.MANAGED_PROFILE_ADDED" />      <protected-broadcast android:name="android.intent.action.MANAGED_PROFILE_UNLOCKED" />      <protected-broadcast android:name="android.intent.action.MANAGED_PROFILE_REMOVED" />      <protected-broadcast android:name="android.bluetooth.adapter.action.BLE_STATE_CHANGED" />      <protected-broadcast android:name="com.android.bluetooth.map.USER_CONFIRM_TIMEOUT" />      <protected-broadcast android:name="com.android.bluetooth.BluetoothMapContentObserver.action.MESSAGE_SENT" />      <protected-broadcast android:name="com.android.bluetooth.BluetoothMapContentObserver.action.MESSAGE_DELIVERY" />      <protected-broadcast android:name="android.content.jobscheduler.JOB_DELAY_EXPIRED" />      <protected-broadcast android:name="android.content.syncmanager.SYNC_ALARM" />      <protected-broadcast android:name="android.media.INTERNAL_RINGER_MODE_CHANGED_ACTION" />      <protected-broadcast android:name="android.media.STREAM_DEVICES_CHANGED_ACTION" />      <protected-broadcast android:name="android.media.STREAM_MUTE_CHANGED_ACTION" />      <protected-broadcast android:name="android.net.sip.SIP_SERVICE_UP" />      <protected-broadcast android:name="android.nfc.action.ADAPTER_STATE_CHANGED" />      <protected-broadcast android:name="android.os.action.CHARGING" />      <protected-broadcast android:name="android.os.action.DISCHARGING" />      <protected-broadcast android:name="android.search.action.SEARCHABLES_CHANGED" />      <protected-broadcast android:name="android.security.STORAGE_CHANGED" />      <protected-broadcast android:name="android.security.action.TRUST_STORE_CHANGED" />      <protected-broadcast android:name="android.security.action.KEYCHAIN_CHANGED" />      <protected-broadcast android:name="android.security.action.KEY_ACCESS_CHANGED" />      <protected-broadcast android:name="android.telecom.action.NUISANCE_CALL_STATUS_CHANGED" />      <protected-broadcast android:name="android.telecom.action.PHONE_ACCOUNT_REGISTERED" />      <protected-broadcast android:name="android.telecom.action.PHONE_ACCOUNT_UNREGISTERED" />      <protected-broadcast android:name="android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION" />      <protected-broadcast android:name="android.telephony.action.CARRIER_CONFIG_CHANGED" />      <protected-broadcast android:name="android.telephony.action.DEFAULT_SUBSCRIPTION_CHANGED" />      <protected-broadcast android:name="android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED" />      <protected-broadcast android:name="android.telephony.action.SECRET_CODE" />      <protected-broadcast android:name="android.telephony.action.SHOW_VOICEMAIL_NOTIFICATION" />      <protected-broadcast android:name="android.telephony.action.SUBSCRIPTION_PLANS_CHANGED" />      <protected-broadcast android:name="com.android.bluetooth.btservice.action.ALARM_WAKEUP" />      <protected-broadcast android:name="com.android.server.action.NETWORK_STATS_POLL" />      <protected-broadcast android:name="com.android.server.action.NETWORK_STATS_UPDATED" />      <protected-broadcast android:name="com.android.server.NetworkTimeUpdateService.action.POLL" />      <protected-broadcast android:name="com.android.server.telecom.intent.action.CALLS_ADD_ENTRY" />      <protected-broadcast android:name="com.android.settings.location.MODE_CHANGING" />      <protected-broadcast android:name="com.android.settings.bluetooth.ACTION_DISMISS_PAIRING" />      <protected-broadcast android:name="NotificationManagerService.TIMEOUT" />      <protected-broadcast android:name="ScheduleConditionProvider.EVALUATE" />      <protected-broadcast android:name="EventConditionProvider.EVALUATE" />      <protected-broadcast android:name="SnoozeHelper.EVALUATE" />      <protected-broadcast android:name="wifi_scan_available" />      <protected-broadcast android:name="action.cne.started" />      <protected-broadcast android:name="android.content.jobscheduler.JOB_DEADLINE_EXPIRED" />      <protected-broadcast android:name="android.intent.action.ACTION_UNSOL_RESPONSE_OEM_HOOK_RAW" />      <protected-broadcast android:name="android.net.conn.CONNECTIVITY_CHANGE_SUPL" />      <protected-broadcast android:name="android.os.action.LIGHT_DEVICE_IDLE_MODE_CHANGED" />      <protected-broadcast android:name="android.os.storage.action.VOLUME_STATE_CHANGED" />      <protected-broadcast android:name="android.os.storage.action.DISK_SCANNED" />      <protected-broadcast android:name="com.android.server.action.UPDATE_TWILIGHT_STATE" />      <protected-broadcast android:name="com.android.server.action.RESET_TWILIGHT_AUTO" />      <protected-broadcast android:name="com.android.server.device_idle.STEP_IDLE_STATE" />      <protected-broadcast android:name="com.android.server.device_idle.STEP_LIGHT_IDLE_STATE" />      <protected-broadcast android:name="com.android.server.Wifi.action.TOGGLE_PNO" />      <protected-broadcast android:name="intent.action.ACTION_RF_BAND_INFO" />      <protected-broadcast android:name="android.intent.action.MEDIA_RESOURCE_GRANTED" />      <protected-broadcast android:name="android.app.action.NETWORK_LOGS_AVAILABLE" />      <protected-broadcast android:name="android.app.action.SECURITY_LOGS_AVAILABLE" />      <protected-broadcast android:name="android.app.action.INTERRUPTION_FILTER_CHANGED" />      <protected-broadcast android:name="android.app.action.INTERRUPTION_FILTER_CHANGED_INTERNAL" />      <protected-broadcast android:name="android.app.action.NOTIFICATION_POLICY_CHANGED" />      <protected-broadcast android:name="android.app.action.NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED" />      <protected-broadcast android:name="android.os.action.ACTION_EFFECTS_SUPPRESSOR_CHANGED" />      <protected-broadcast android:name="android.app.action.NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED" />      <protected-broadcast android:name="android.app.action.NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED" />      <protected-broadcast android:name="android.app.action.APP_BLOCK_STATE_CHANGED" />      <protected-broadcast android:name="android.permission.GET_APP_GRANTED_URI_PERMISSIONS" />      <protected-broadcast android:name="android.permission.CLEAR_APP_GRANTED_URI_PERMISSIONS" />      <protected-broadcast android:name="android.intent.action.DYNAMIC_SENSOR_CHANGED" />      <protected-broadcast android:name="android.intent.action.ACTION_RADIO_OFF" />      <protected-broadcast android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" />      <protected-broadcast android:name="android.accounts.action.ACCOUNT_REMOVED" />      <protected-broadcast android:name="android.accounts.action.VISIBLE_ACCOUNTS_CHANGED" />      <protected-broadcast android:name="com.android.sync.SYNC_CONN_STATUS_CHANGED" />      <protected-broadcast android:name="com.android.phone.SIP_INCOMING_CALL" />      <protected-broadcast android:name="com.android.phone.SIP_ADD_PHONE" />      <protected-broadcast android:name="com.android.phone.SIP_REMOVE_PHONE" />      <protected-broadcast android:name="com.android.phone.SIP_CALL_OPTION_CHANGED" />      <protected-broadcast android:name="android.bluetooth.adapter.action.BLE_ACL_CONNECTED" />      <protected-broadcast android:name="android.bluetooth.adapter.action.BLE_ACL_DISCONNECTED" />      <protected-broadcast android:name="android.bluetooth.input.profile.action.HANDSHAKE" />      <protected-broadcast android:name="android.bluetooth.input.profile.action.REPORT" />      <protected-broadcast android:name="android.intent.action.TWILIGHT_CHANGED" />      <protected-broadcast android:name="com.android.server.fingerprint.ACTION_LOCKOUT_RESET" />      <protected-broadcast android:name="android.net.wifi.PASSPOINT_ICON_RECEIVED" />      <protected-broadcast android:name="com.android.server.notification.CountdownConditionProvider" />      <protected-broadcast android:name="com.android.internal.location.ALARM_WAKEUP" />      <protected-broadcast android:name="com.android.internal.location.ALARM_TIMEOUT" />      <protected-broadcast android:name="android.intent.action.GLOBAL_BUTTON" />      <protected-broadcast android:name="android.intent.action.MANAGED_PROFILE_AVAILABLE" />      <protected-broadcast android:name="android.intent.action.MANAGED_PROFILE_UNAVAILABLE" />      <protected-broadcast android:name="com.android.server.pm.DISABLE_QUIET_MODE_AFTER_UNLOCK" />      <protected-broadcast android:name="com.android.server.retaildemo.ACTION_RESET_DEMO" />      <protected-broadcast android:name="android.intent.action.DEVICE_LOCKED_CHANGED" />      <!-- Added in O -->      <protected-broadcast android:name="android.app.action.APPLICATION_DELEGATION_SCOPES_CHANGED" />      <protected-broadcast android:name="com.android.server.wm.ACTION_REVOKE_SYSTEM_ALERT_WINDOW_PERMISSION" />      <protected-broadcast android:name="android.media.tv.action.PARENTAL_CONTROLS_ENABLED_CHANGED" />      <protected-broadcast android:name="android.content.pm.action.SESSION_COMMITTED" />      <protected-broadcast android:name="android.os.action.USER_RESTRICTIONS_CHANGED" />      <protected-broadcast android:name="android.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT" />      <protected-broadcast android:name="android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED" />      <protected-broadcast android:name="android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED" />      <protected-broadcast android:name="android.media.tv.action.CHANNEL_BROWSABLE_REQUESTED" />      <protected-broadcast android:name="com.android.server.inputmethod.InputMethodManagerService.SHOW_INPUT_METHOD_PICKER" />      <!-- Time zone rules update intents fired by the system server -->      <protected-broadcast android:name="com.android.intent.action.timezone.RULES_UPDATE_OPERATION" />      <protected-broadcast android:name="com.android.intent.action.timezone.TRIGGER_RULES_UPDATE_CHECK" />      <!-- Made protected in P (was introduced in JB-MR2) -->      <protected-broadcast android:name="android.intent.action.GET_RESTRICTION_ENTRIES" />      <protected-broadcast android:name="android.telephony.euicc.action.OTA_STATUS_CHANGED" />      <!-- Added in P -->      <protected-broadcast android:name="android.app.action.PROFILE_OWNER_CHANGED" />      <protected-broadcast android:name="android.app.action.TRANSFER_OWNERSHIP_COMPLETE" />      <protected-broadcast android:name="android.app.action.AFFILIATED_PROFILE_TRANSFER_OWNERSHIP_COMPLETE" />      <protected-broadcast android:name="android.app.action.DATA_SHARING_RESTRICTION_CHANGED" />      <protected-broadcast android:name="android.app.action.STATSD_STARTED" />      <protected-broadcast android:name="com.android.server.biometrics.fingerprint.ACTION_LOCKOUT_RESET" />      <protected-broadcast android:name="com.android.server.biometrics.face.ACTION_LOCKOUT_RESET" />      <!-- For IdleController -->      <protected-broadcast android:name="android.intent.action.DOCK_IDLE" />      <protected-broadcast android:name="android.intent.action.DOCK_ACTIVE" />      <!-- Added in Q -->      <protected-broadcast android:name="android.content.pm.action.SESSION_UPDATED" />      <protected-broadcast android:name="android.settings.action.GRAYSCALE_CHANGED" />      <!-- For CarIdlenessTracker -->      <protected-broadcast android:name="com.android.server.jobscheduler.GARAGE_MODE_ON" />      <protected-broadcast android:name="com.android.server.jobscheduler.GARAGE_MODE_OFF" />      <protected-broadcast android:name="com.android.server.jobscheduler.FORCE_IDLE" />      <protected-broadcast android:name="com.android.server.jobscheduler.UNFORCE_IDLE" />      <protected-broadcast android:name="android.provider.action.DEFAULT_SMS_PACKAGE_CHANGED_INTERNAL" />      <protected-broadcast android:name="android.intent.action.DEVICE_CUSTOMIZATION_READY" />    ...