Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android Q API 29中使用GetNeightringCellInfo()会出现错误;无法解析方法“;而不是弃用警告_Android - Fatal编程技术网

在Android Q API 29中使用GetNeightringCellInfo()会出现错误;无法解析方法“;而不是弃用警告

在Android Q API 29中使用GetNeightringCellInfo()会出现错误;无法解析方法“;而不是弃用警告,android,Android,我有一段代码使用android.telephony.TelephonyManager中的GetNeighborringCellInfo()方法,该方法在android Studio中运行良好,compileSdkVersion设置为28,但当我将compileSdkVersion设置为29时,会出现错误“无法解析方法”,而不是弃用警告,因为此方法已在API 29中删除。其结果是该项目无法建设 有人知道怎么解决这个问题吗 TelephonyManager telephonyManager = (T

我有一段代码使用android.telephony.TelephonyManager中的GetNeighborringCellInfo()方法,该方法在android Studio中运行良好,compileSdkVersion设置为28,但当我将compileSdkVersion设置为29时,会出现错误“无法解析方法”,而不是弃用警告,因为此方法已在API 29中删除。其结果是该项目无法建设

有人知道怎么解决这个问题吗

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版本的手机上使用相同的应用程序(支持此方法)。通常的方法是给出弃用警告并能够生成项目,而不是“无法解决方法”错误,这会阻止项目生成。