Android READ_PHONE_STATE 运行时权限请求进行和管理 phone 调用

Android READ_PHONE_STATE runtime permission asks to make and manage phone calls

在应用程序中,我想通过 TelephonyManager.getDeviceId() 获得唯一的 phone ID。要使用它,我需要此权限 READ_PHONE_STATE。问题是 Android 6 的运行时权限。在运行时权限弹出对话框中,它要求授予权限 "To make and manage phone calls",这可能会吓到用户使用应用程序。可以做什么?或者我可以在不使用这么大的权限的情况下获得设备的任何其他唯一标识符吗?

TelephonyManager TM = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

String deviceId = TM.getDeviceId();

我在我的应用程序中使用它作为唯一设备标识符,我不需要任何 运行 时间许可。

String android_id = Settings.Secure.getString(getApplicationContext().getContentResolver(),
                Settings.Secure.ANDROID_ID);

或者你可以使用这个

 String uuid = UUID.randomUUID().toString();