diff options
| -rw-r--r-- | services/core/java/com/android/server/emergency/EmergencyAffordanceService.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java b/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java index cca9f10c630b..353f4506e1e9 100644 --- a/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java +++ b/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java @@ -99,6 +99,7 @@ public class EmergencyAffordanceService extends SystemService { }; private boolean mSimNeedsEmergencyAffordance; private boolean mNetworkNeedsEmergencyAffordance; + private boolean mVoiceCapable; private void requestCellScan() { mHandler.obtainMessage(CELL_INFO_STATE_CHANGED).sendToTarget(); @@ -125,8 +126,8 @@ public class EmergencyAffordanceService extends SystemService { private void updateEmergencyAffordanceNeeded() { synchronized (mLock) { - mEmergencyAffordanceNeeded = mSimNeedsEmergencyAffordance || - mNetworkNeedsEmergencyAffordance; + mEmergencyAffordanceNeeded = mVoiceCapable && (mSimNeedsEmergencyAffordance || + mNetworkNeedsEmergencyAffordance); Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.EMERGENCY_AFFORDANCE_NEEDED, mEmergencyAffordanceNeeded ? 1 : 0); @@ -157,6 +158,11 @@ public class EmergencyAffordanceService extends SystemService { public void onBootPhase(int phase) { if (phase == PHASE_THIRD_PARTY_APPS_CAN_START) { mTelephonyManager = mContext.getSystemService(TelephonyManager.class); + mVoiceCapable = mTelephonyManager.isVoiceCapable(); + if (!mVoiceCapable) { + updateEmergencyAffordanceNeeded(); + return; + } mSubscriptionManager = SubscriptionManager.from(mContext); HandlerThread thread = new HandlerThread(TAG); thread.start(); |