Loading core/java/android/os/Build.java +18 −7 Original line number Original line Diff line number Diff line Loading @@ -133,12 +133,23 @@ public class Build { * <a href="/training/articles/security-key-attestation.html">key attestation</a> to obtain * <a href="/training/articles/security-key-attestation.html">key attestation</a> to obtain * proof of the device's original identifiers. * proof of the device's original identifiers. * * * <p>Requires Permission: READ_PRIVILEGED_PHONE_STATE, for the calling app to be the device or * <p>Starting with API level 29, persistent device identifiers are guarded behind additional * profile owner and have the READ_PHONE_STATE permission, or that the calling app has carrier * restrictions, and apps are recommended to use resettable identifiers (see <a * privileges (see {@link android.telephony.TelephonyManager#hasCarrierPrivileges}). The profile * href="c"> Best practices for unique identifiers</a>). This method can be invoked if one of * owner is an app that owns a managed profile on the device; for more details see <a * the following requirements is met: * href="https://developer.android.com/work/managed-profiles">Work profiles</a>. Profile owner * <ul> * access is deprecated and will be removed in a future release. * <li>If the calling app has been granted the READ_PRIVILEGED_PHONE_STATE permission; this * is a privileged permission that can only be granted to apps preloaded on the device. * <li>If the calling app is the device or profile owner and has been granted the * {@link Manifest.permission#READ_PHONE_STATE} permission. The profile owner is an app that * owns a managed profile on the device; for more details see <a * href="https://developer.android.com/work/managed-profiles">Work profiles</a>. * Profile owner access is deprecated and will be removed in a future release. * <li>If the calling app has carrier privileges (see {@link * android.telephony.TelephonyManager#hasCarrierPrivileges}) on any active subscription. * <li>If the calling app is the default SMS role holder (see {@link * android.app.role.RoleManager#isRoleHeld(String)}). * </ul> * * * <p>If the calling app does not meet one of these requirements then this method will behave * <p>If the calling app does not meet one of these requirements then this method will behave * as follows: * as follows: Loading @@ -150,7 +161,7 @@ public class Build { * the READ_PHONE_STATE permission, or if the calling app is targeting API level 29 or * the READ_PHONE_STATE permission, or if the calling app is targeting API level 29 or * higher, then a SecurityException is thrown.</li> * higher, then a SecurityException is thrown.</li> * </ul> * </ul> * * * * @return The serial number if specified. * @return The serial number if specified. */ */ @SuppressAutoDoc // No support for device / profile owner. @SuppressAutoDoc // No support for device / profile owner. Loading telephony/java/android/telephony/TelephonyManager.java +186 −70 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/java/android/os/Build.java +18 −7 Original line number Original line Diff line number Diff line Loading @@ -133,12 +133,23 @@ public class Build { * <a href="/training/articles/security-key-attestation.html">key attestation</a> to obtain * <a href="/training/articles/security-key-attestation.html">key attestation</a> to obtain * proof of the device's original identifiers. * proof of the device's original identifiers. * * * <p>Requires Permission: READ_PRIVILEGED_PHONE_STATE, for the calling app to be the device or * <p>Starting with API level 29, persistent device identifiers are guarded behind additional * profile owner and have the READ_PHONE_STATE permission, or that the calling app has carrier * restrictions, and apps are recommended to use resettable identifiers (see <a * privileges (see {@link android.telephony.TelephonyManager#hasCarrierPrivileges}). The profile * href="c"> Best practices for unique identifiers</a>). This method can be invoked if one of * owner is an app that owns a managed profile on the device; for more details see <a * the following requirements is met: * href="https://developer.android.com/work/managed-profiles">Work profiles</a>. Profile owner * <ul> * access is deprecated and will be removed in a future release. * <li>If the calling app has been granted the READ_PRIVILEGED_PHONE_STATE permission; this * is a privileged permission that can only be granted to apps preloaded on the device. * <li>If the calling app is the device or profile owner and has been granted the * {@link Manifest.permission#READ_PHONE_STATE} permission. The profile owner is an app that * owns a managed profile on the device; for more details see <a * href="https://developer.android.com/work/managed-profiles">Work profiles</a>. * Profile owner access is deprecated and will be removed in a future release. * <li>If the calling app has carrier privileges (see {@link * android.telephony.TelephonyManager#hasCarrierPrivileges}) on any active subscription. * <li>If the calling app is the default SMS role holder (see {@link * android.app.role.RoleManager#isRoleHeld(String)}). * </ul> * * * <p>If the calling app does not meet one of these requirements then this method will behave * <p>If the calling app does not meet one of these requirements then this method will behave * as follows: * as follows: Loading @@ -150,7 +161,7 @@ public class Build { * the READ_PHONE_STATE permission, or if the calling app is targeting API level 29 or * the READ_PHONE_STATE permission, or if the calling app is targeting API level 29 or * higher, then a SecurityException is thrown.</li> * higher, then a SecurityException is thrown.</li> * </ul> * </ul> * * * * @return The serial number if specified. * @return The serial number if specified. */ */ @SuppressAutoDoc // No support for device / profile owner. @SuppressAutoDoc // No support for device / profile owner. Loading
telephony/java/android/telephony/TelephonyManager.java +186 −70 File changed.Preview size limit exceeded, changes collapsed. Show changes