diff options
Diffstat (limited to 'src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java')
-rw-r--r-- | src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java index edded2450..9b9b75af4 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java @@ -36,6 +36,7 @@ import androidx.annotation.NonNull; import com.android.cellbroadcastreceiver.CellBroadcastChannelManager.CellBroadcastChannelRange; import com.android.internal.annotations.VisibleForTesting; +import com.android.modules.utils.build.SdkLevel; import java.lang.reflect.Method; import java.util.ArrayList; @@ -138,13 +139,17 @@ public class CellBroadcastConfigService extends IntentService { } else { manager = SmsManager.getDefault(); } - - // TODO: Call manager.resetAllCellBroadcastRanges() in Android S. - try { - Method method = SmsManager.class.getDeclaredMethod("resetAllCellBroadcastRanges"); - method.invoke(manager); - } catch (Exception e) { - log("Can't reset cell broadcast ranges. e=" + e); + // SmsManager.resetAllCellBroadcastRanges is a new @SystemAPI in S. We need to support + // backward compatibility as the module need to run on R build as well. + if (SdkLevel.isAtLeastS()) { + manager.resetAllCellBroadcastRanges(); + } else { + try { + Method method = SmsManager.class.getDeclaredMethod("resetAllCellBroadcastRanges"); + method.invoke(manager); + } catch (Exception e) { + log("Can't reset cell broadcast ranges. e=" + e); + } } } |