which means apps must adapt to new restrictions • Scoped Storage • Foreground-only location • Background execution limits • Access to unique ids like IMEI • Wifi/BT scanning
entire SD Card ◦ Used “scopes” like PICTURES, MUSIC, MOVIES etc ◦ Apps can only see files within a scope • File Managers, as we know them, might cease to exist • Legacy support, for the time being ◦ requestLegacyExternalStorage in Android Manifest
OS automatically adds permission if FINE/COARSE location requested. • Must be explicitly added for targetSdk = 29 • Without this permission, location works only in activities and foreground services
with FLAG_ACTIVITY_NEW_TASK from service to start activity. • New Way ◦ Display time sensitive notifications with pending intent to activity ◦ User can swipe away notification, or click it – which opens activity. ◦ Even time-sensitive notifications are subject to DND rules. • Exceptions ◦ If app already is in foreground, or has a recent task open. ◦ App is device policy manager.
read IMEI • Submitting apps with READ_PRIVILEGED_PHONE_STATE to Play Store not allowed. • Device Admin apps, and apps with carrier permissions (SIM card apps) can still access • MAC address is now randomized. Device Admin apps can still read actual MAC address.
toggle WiFi ◦ WifiManager.setWifiEnabled() returns false always • To nudge the user to turn on Wifi, send him to Settings app or use a Setttings panel (more on this later). • Apps cannot read any information about saved networks, nor can they connect/reconnect/disable/forget saved networks.
to users to toggle certain settings. § Android 10 doesn’t allow apps to directly change BT, Wifi etc states. § Apps can nudge a user by showing a settings panel.
old, and had become very slow if multiple apps installed. § It used to query all sharing intents at runtime and the dialog would take time. § Sharing Shortcuts API makes it much faster.