Google on Thursday released the Android M Developer Preview 2 for
Nexus devices which brings fixes and updates to Developer Preview 1
based on user feedback.
The latest Developer Preview 2 comes
with build number MPZ79M for Nexus 5, Nexus 6, and Nexus 9 devices while
it comes with build number MPZ79N for the Nexus Player. All compatible
Nexus devices running Developer Preview 1 should start getting
notifications about the OTA (over-the-air) update in the coming days,
though the system or factory images are already available - users are
recommended to backup their data before flashing the image.
Google
has listed
features and updates that Developer Preview 2 brings
including the up to date M release platform code; near-final APIs to
validate apps and to provide more testing support, Nexus system images
and emulator system images with the Android platform updates have been
refined. Apart from the platform update, the system images also include
Google Play services 7.6.
For
developers, Google notes, "For those developers using the emulator, you
can update your M preview system images via the SDK Manager in Android
Studio."
Some of the other Android platform changes include
modifications to platform permissions including external storage, Wi-Fi
and Bluetooth location, and changes to contacts/identity permissions.
There are some API changes including updated Bluetooth Stylus APIs and
updated Media API. Google has also fixed a couple of developer-reported
issues such as a TextInputLayout hint issue for embedded EditText, and a
camera permission issue with Legacy Apps.
The
android.permission.USE_FINGERPRINT permission now has "normal"
protection level, so it is no longer necessary to request this
permission directly from the user. The USE_FINGERPRINT permission
enables fingerprints to be enabled for authentication, but does not give
the requesting app access to the enrollment/fingerprint administration
flow.
The android.permission.WRITE_EXTERNAL_STORAGE
permission has protection level "dangerous", meaning that apps wanting
to write to external storage will need to request permission from the
user at runtime. Both WRITE_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE
are members of the STORAGE permission group.
Remote
Bluetooth/Wi-Fi MAC's now require either the
android.permission.LOCATION_FINE or android.permission.LOCATION_COURSE
permission.
Some accounts and identity permissions are
moved to CONTACTS permissions group and others are removed or granted
based on account type. In particular,
android.permission.USE_CREDENTIALS, android.permission.MANAGE_ACCOUNTS,
and android.permission.AUTHENTICATE_ACCOUNTS are ungrouped pending
further changes in a later release.
The Wi-Fi permissions
android.permission.CHANGE_WIFI_STATE,
android.permission.CHANGE_WIMAX_STATE, and
android.permission.CHANGE_WIFI_MULTICAST_STATE now have protection level
"normal".
The Bluetooth permissions
android.permission.BLUETOOTH and android.permission.BLUETOOTH_ADMIN now
have protection level "normal".
Bookmarks and subscribed feeds permissions are removed.
Apps
included in the system image are no longer granted dangerous
permissions automatically. All apps should check for and request
permissions at runtime.
Introduces the utility method
Activity.shouldShowRequestPermissionRationale(String), which lets your
app see whether users have previously rejected a permission request.
This lets you know that your app should explain the the user why it
needs that permission. For more information see the Permissions
developer guide.
Other changes
The android.app.AssistContent and android.app.AssistStructure classes are moved into a new package, android.app.assist.
Bluetooth
Stylus APIs are updated and include new callback events. The
View.OnStylusButtonPressListener class is renamed to
View.OnContextClickListener and
GestureDetector.OnStylusButtonPressListener class to
GestureDetector.OnContextClickListener.