Build.GetSerial 方法

定义

获取硬件序列号(如果可用)。

[Android.Runtime.Register("getSerial", "()Ljava/lang/String;", "", ApiSince=26)]
[Android.Runtime.RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE")]
public static string? GetSerial ();
[<Android.Runtime.Register("getSerial", "()Ljava/lang/String;", "", ApiSince=26)>]
[<Android.Runtime.RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE")>]
static member GetSerial : unit -> string

返回

指定的序列号。

属性

注解

获取硬件序列号(如果可用)。

<p class=“note”><b>Note:</b> Root access 可能允许修改设备标识符,例如硬件序列号。 如果更改这些标识符,则无法使用密钥证明来获取设备原始标识符的证明。 如果框架提供的标识符与预配的标识符不匹配,KeyMint 将拒绝 ID 证明请求。

从 API 级别 29 开始,永久性设备标识符受到其他限制保护,建议应用使用可重置标识符(请参阅唯一标识符的最佳做法)。 如果满足以下要求之一,则可以调用此方法: <ul><li>如果已向调用应用授予READ_PRIVILEGED_PHONE_STATE权限;这是一个特权权限,只能授予设备上预加载的应用的权限。 <li>如果呼叫应用具有任何活动订阅的运营商权限(请参阅 android.telephony.TelephonyManager#hasCarrierPrivileges)。 <li>如果呼叫应用是默认短信角色持有者(请参阅 android.app.role.RoleManager#isRoleHeld(String))。 <li>如果呼叫应用是完全托管设备的设备所有者、组织拥有设备的配置文件所有者或其代理人(请参阅 android.app.admin.DevicePolicyManager#getEnrollmentSpecificId())。 </ul>

如果调用应用不符合以下要求之一,则此方法的行为如下:

<ul><li>如果调用应用的目标 SDK 为 API 级别 28 或更低,并且应用具有READ_PHONE_STATE权限,则Build#UNKNOWN返回该应用。</li li><>如果调用应用的目标 SDK 为 API 级别 28 或更低,并且应用没有READ_PHONE_STATE权限,或者调用应用面向 API 级别 29 或更高版本,则会引发 SecurityException。</li></ul>

适用于 . 的 android.os.Build.getSerial()Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于