La Preview 2 llegó el 9 de julio de 2015, dentro del plazo de finales de junio o principios de julio que Google había fijado. Google la describió como APIs “near-final” con correcciones a partir de lo que reportaron los desarrolladores. Casi todos sus cambios fueron en el modelo de permisos.
| Fecha | 9 de julio de 2015 |
| Build | MPZ79M (Nexus 5, 6, 9); MPZ79N (Nexus Player) |
| Dispositivos | Los mismos cuatro Nexus; por OTA desde MPZ44Q o flasheando |
| Emulador | x86 y ARM, 32 y 64 bits, desde el SDK Manager |
| Google Play services | 7.6 |
| Estado de la API | Casi final |
Cómo rehízo los permisos la Preview 2
- Almacenamiento.
WRITE_EXTERNAL_STORAGEpasó a “dangerous”, así que las apps deben pedirlo en tiempo de ejecución. Junto conREAD_EXTERNAL_STORAGEforma el grupoSTORAGE. - Huella digital.
USE_FINGERPRINTpasó a “normal” y ya no necesita la aprobación del usuario. No da acceso al registro de huellas. - Wi-Fi y Bluetooth.
BLUETOOTH,BLUETOOTH_ADMIN,CHANGE_WIFI_STATE,CHANGE_WIMAX_STATEyCHANGE_WIFI_MULTICAST_STATEpasaron a “normal”. Leer la dirección MAC de un dispositivo Bluetooth o Wi-Fi remoto ahora exigeACCESS_COARSE_LOCATIONoACCESS_FINE_LOCATION. - Cuentas. Algunos permisos de cuentas e identidad pasaron al grupo
CONTACTS;USE_CREDENTIALS,MANAGE_ACCOUNTSyAUTHENTICATE_ACCOUNTSquedaron sin grupo a la espera de más cambios. Se eliminaron los permisos de marcadores y de feeds suscritos. - Apps del sistema. Las apps de la imagen del sistema dejaron de recibir permisos peligrosos de forma automática.
- Justificación.
Activity.shouldShowRequestPermissionRationale(String)indica si el usuario ya rechazó un permiso, para que la app explique por qué lo necesita.
Otros cambios de la Preview 2
- Las conexiones USB quedan en solo carga por defecto; el usuario debe permitir el acceso a datos.
android.app.AssistContentyAssistStructurepasaron al nuevo paqueteandroid.app.assist.- Los listeners del lápiz cambiaron de nombre:
View.OnContextClickListeneryGestureDetector.OnContextClickListenersustituyen a las versionesOnStylusButtonPress. InputDevice.hasMicrophone()indica si un dispositivo de entrada tiene micrófono.
El tema de sistema “Dark” de la Preview 1 desapareció. 9to5Google citó después a un empleado de Google en el issue tracker de la preview: “This will not be included in the M release.”