Я Android разработчик фреймворка. Я пытаюсь перенести мои настройки rnet APK (системное приложение) с Android O на Android Q. скрытые API , которые я использовал из EthernetManager. java изменены в Android Q. Таким образом, я изменил свои коды для запуска моего приложения на обоих устройствах (Android O и Android Q).
@TargetApi(Build.VERSION_CODES.O)
private IpConfiguration getConfiguration() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {
return mEthernetManager.getConfiguration();
} else {
String[] availIntf = mEthernetManager.getAvailableInterfaces();
if (availIntf.length > 0) {
mIntfName = availIntf[0];
if (mDebug) android.util.Log.d(TAG, "1st available inteface: " + availIntf[0]);
return mEthernetManager.getConfiguration(availIntf[0]);
}
}
return null;
}
Но я все еще получал сообщения об ошибках при сборке на AOSP на основе Android 10:
error: method getConfiguration in class EthernetManager cannot be applied to given types;
return mEthernetManager.getConfiguration();
^
required: String
found: no arguments
reason: actual and formal argument lists differ in length
Моя цель - использовать этот код для сборки на другом AOSP проекты (на основе O и Q) и успешно выполняются на устройствах с Android O или Q. Эта проблема касается совместимости API, но эти API скрыты. Как я могу это исправить? Большое спасибо.