Я сомневаюсь, что он был добавлен после выпуска API 28.Он помечен @hide
, что означает, что когда SDK был создан, он не был встроен. Он все еще находится в самой среде, но Android Studio этого не знает.
Чтобы обойти это, выПридется использовать отражение.Что-то вроде:
try {
Method getWcdmaRscp = SignalStrength.class.getMethod("getWcdmaRscp");
int rscp = Integer.parseInt(getWcdmaRscp.invoke(signalStrength).toString()); //signalStrength is the instance you have
} catch (Exception ignored) {}
Однако это, вероятно, не сработает.Android Pie ввел ограничения на доступ к скрытым методам и классам.В Oreo вы можете просто использовать отражение.В Pie большинство классов, к которым вы пытаетесь получить доступ, выдают исключение ClassNotFound
или NoSuchMethodError
, поскольку система запрещает доступ к ним сторонним приложениям.Некоторые скрытые API по-прежнему доступны, но окончательного списка нет.