在Android Q API 29中使用GetNeightringCellInfo()会出现错误;无法解析方法“;而不是弃用警告
我有一段代码使用android.telephony.TelephonyManager中的GetNeighborringCellInfo()方法,该方法在android Studio中运行良好,compileSdkVersion设置为28,但当我将compileSdkVersion设置为29时,会出现错误“无法解析方法”,而不是弃用警告,因为此方法已在API 29中删除。其结果是该项目无法建设 有人知道怎么解决这个问题吗在Android Q API 29中使用GetNeightringCellInfo()会出现错误;无法解析方法“;而不是弃用警告,android,Android,我有一段代码使用android.telephony.TelephonyManager中的GetNeighborringCellInfo()方法,该方法在android Studio中运行良好,compileSdkVersion设置为28,但当我将compileSdkVersion设置为29时,会出现错误“无法解析方法”,而不是弃用警告,因为此方法已在API 29中删除。其结果是该项目无法建设 有人知道怎么解决这个问题吗 TelephonyManager telephonyManager = (T
TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
List<NeighboringCellInfo> n=telephonyManager.getNeighboringCellInfo();
TelephonyManager TelephonyManager=(TelephonyManager)mContext.getSystemService(Context.TELEPHONY_服务);
List n=telephonyManager.getNeightringCellInfo();
Android Q中的NeighborringCellInfo
类已被弃用(因此不鼓励使用,但仍可使用),但TelephonyManager.getNeighborringCellInfo()
以前显然已被弃用,并从Android Q中删除了。它不再出现在Android文档中。以下引述为官方回应:
“sdk中不提供@removed方法。如
文档中提到,我们建议改用getAllCellInfo
两年前,我们@弃用了此函数。替代方法是
(getAllCellInfo)函数是7年前创建的。它应该是
在您需要支持的旧设备上可用。“
提供的官方解决方案是使用反射:
建议的方法是检测正在使用的API版本并
如果可用,请使用新方法,否则使用反射
如果需要,访问旧方法
在这里阅读@NileshRathod我看到它写着“这个类不应该被任何针对Android Q或更高版本的应用程序使用”,但我想在Android Q和以前的Android版本的手机上使用相同的应用程序(支持此方法)。通常的方法是给出弃用警告并能够生成项目,而不是“无法解决方法”错误,这会阻止项目生成。