在 Android 12 中,应用程序只能访问少量的硬件唯一标识符,包括 IMEI,序列号和 Android ID。其他硬件标识符,如 MAC 地址和 Wi-Fi 硬件地址,将无法访问。以下代码示例演示如何获取 IMEI 和序列号:
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, 1);
}
String imei = telephonyManager.getImei();
String serialNumber = Build.getSerial();
}
请注意,如果您的应用程序需要访问任何硬件标识符,您可能需要动态请求适当的权限。有关更多信息,请参见 Android 文档。