From fb27c768afc727645197919e8e00164651eefc0d Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Wed, 7 Aug 2024 11:45:28 +0800 Subject: [PATCH] Check ims for isVoImsOptInEnabled If the device does not have PackageManager.FEATURE_TELEPHONY_IMS, ProvisioningManager.getProvisioningIntValue() could not be called. Fix: 346708541 Flag: EXEMPT bug fix Test: manual - SIM settings (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:aa0d63ce4022fa3ae29b77c299c4dce37d11b338) Merged-In: I52b5a62d20ee7df14ecf93c9b0dbbed6f7dc0f0d Change-Id: I52b5a62d20ee7df14ecf93c9b0dbbed6f7dc0f0d --- .../android/settings/network/ims/VolteQueryImsState.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/com/android/settings/network/ims/VolteQueryImsState.java b/src/com/android/settings/network/ims/VolteQueryImsState.java index b09a1304136..5acf2db2129 100644 --- a/src/com/android/settings/network/ims/VolteQueryImsState.java +++ b/src/com/android/settings/network/ims/VolteQueryImsState.java @@ -19,6 +19,7 @@ package com.android.settings.network.ims; import static android.telephony.ims.ProvisioningManager.KEY_VOIMS_OPT_IN_STATUS; import android.content.Context; +import android.content.pm.PackageManager; import android.telecom.TelecomManager; import android.telephony.AccessNetworkConstants; import android.telephony.SubscriptionManager; @@ -143,6 +144,11 @@ public class VolteQueryImsState extends ImsQueryController { * @return true when VoIMS opt-in has been enabled, otherwise false */ public boolean isVoImsOptInEnabled() { + if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS)) { + // If the device does not have PackageManager.FEATURE_TELEPHONY_IMS, + // ProvisioningManager.getProvisioningIntValue() could not be called. + return false; + } int voImsOptInStatus = ProvisioningManager.createForSubscriptionId(mSubId) .getProvisioningIntValue(KEY_VOIMS_OPT_IN_STATUS); return voImsOptInStatus == ProvisioningManager.PROVISIONING_VALUE_ENABLED;