getIMEI在Android中返回null设备所有者

问题描述

我的应用是设备所有者,但getIMEI()在Android 9中仍返回null,并且我还提供了权限。

根据Android开发者文档:(https://developer.android.com/about/versions/10/privacy/changes#non-resettable-device-ids

注意:如果您的应用是设备或个人资料所有者应用,则即使您的应用定位到Android 10或更高版本,您也只需READ_PHONE_STATE权限即可访问不可重置的设备标识符。另外,如果您的应用具有特殊的运营商权限,则不需要任何权限即可访问标识符。

解决方法

如果您的targetSdkVersion是29(Android 10)或更高版本,那么如果您运行的是Android 9或更早版本,则在请求IMEI(或其他几个标识符之一)时,您将获得空值。有关更多信息,请参阅有关Privacy Changes in Android 10的文档。