不推荐使用 getLine1Number 来获取设备标识符

问题描述

我正在尝试获取电话号码,但 Android Studio 显示此警告。

不推荐使用 getLine1Number 来获取设备标识符

TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
if (ActivityCompat.checkSelfPermission(this,Manifest.permission.READ_SMS) == PackageManager.PERMISSION_GRANTED
        || ActivityCompat.checkSelfPermission(this,Manifest.permission.READ_PHONE_NUMBERS) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(this,Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
    phoneNumber = telephonyManager.getLine1Number();
}

也在相同的设备中getLine1Number()抛出一个SecurityException

为什么不推荐?

解决方法

我一直在穿同样的东西,发现这里都有解释:https://developer.android.com/training/articles/user-data-ids