Loading services/core/java/com/android/server/location/GpsLocationProvider.java +3 −2 Original line number Diff line number Diff line Loading @@ -788,8 +788,9 @@ public class GpsLocationProvider implements LocationProviderInterface { } if (info != null) { boolean dataEnabled = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA, 1) == 1; boolean dataEnabled = TelephonyManager.getIntWithSubId(mContext.getContentResolver(), Settings.Global.MOBILE_DATA, SubscriptionManager.getDefaultSubId(), 1) == 1; boolean networkAvailable = info.isAvailable() && dataEnabled; String defaultApn = getSelectedApn(); if (defaultApn == null) { Loading telephony/java/android/telephony/TelephonyManager.java +47 −0 Original line number Diff line number Diff line Loading @@ -19,8 +19,11 @@ package android.telephony; import android.annotation.SystemApi; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.os.Bundle; import android.os.RemoteException; import android.os.ServiceManager; Loading Loading @@ -3524,4 +3527,48 @@ public class TelephonyManager { } return false; } /** * This function retrieves value for setting "name+subId", and if that is not found * retrieves value for setting "name", and if that is not found uses def as default * * @hide */ public static int getIntWithSubId(ContentResolver cr, String name, int subId, int def) { return Settings.Global.getInt(cr, name + subId, Settings.Global.getInt(cr, name, def)); } /** * This function retrieves value for setting "name+subId", and if that is not found * retrieves value for setting "name", and if that is not found throws * SettingNotFoundException * * @hide */ public static int getIntWithSubId(ContentResolver cr, String name, int subId) throws SettingNotFoundException { try { return Settings.Global.getInt(cr, name + subId); } catch (SettingNotFoundException e) { try { int val = Settings.Global.getInt(cr, name); /* We are now moving from 'setting' to 'setting+subId', and using the value stored * for 'setting' as default. Reset the default (since it may have a user set * value). */ int default_val = val; if (name.equals(Settings.Global.MOBILE_DATA)) { default_val = "true".equalsIgnoreCase( SystemProperties.get("ro.com.android.mobiledata", "true")) ? 1 : 0; } if (default_val != val) { Settings.Global.putInt(cr, name, default_val); } return val; } catch (SettingNotFoundException exc) { throw new SettingNotFoundException(name); } } } } Loading
services/core/java/com/android/server/location/GpsLocationProvider.java +3 −2 Original line number Diff line number Diff line Loading @@ -788,8 +788,9 @@ public class GpsLocationProvider implements LocationProviderInterface { } if (info != null) { boolean dataEnabled = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA, 1) == 1; boolean dataEnabled = TelephonyManager.getIntWithSubId(mContext.getContentResolver(), Settings.Global.MOBILE_DATA, SubscriptionManager.getDefaultSubId(), 1) == 1; boolean networkAvailable = info.isAvailable() && dataEnabled; String defaultApn = getSelectedApn(); if (defaultApn == null) { Loading
telephony/java/android/telephony/TelephonyManager.java +47 −0 Original line number Diff line number Diff line Loading @@ -19,8 +19,11 @@ package android.telephony; import android.annotation.SystemApi; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.os.Bundle; import android.os.RemoteException; import android.os.ServiceManager; Loading Loading @@ -3524,4 +3527,48 @@ public class TelephonyManager { } return false; } /** * This function retrieves value for setting "name+subId", and if that is not found * retrieves value for setting "name", and if that is not found uses def as default * * @hide */ public static int getIntWithSubId(ContentResolver cr, String name, int subId, int def) { return Settings.Global.getInt(cr, name + subId, Settings.Global.getInt(cr, name, def)); } /** * This function retrieves value for setting "name+subId", and if that is not found * retrieves value for setting "name", and if that is not found throws * SettingNotFoundException * * @hide */ public static int getIntWithSubId(ContentResolver cr, String name, int subId) throws SettingNotFoundException { try { return Settings.Global.getInt(cr, name + subId); } catch (SettingNotFoundException e) { try { int val = Settings.Global.getInt(cr, name); /* We are now moving from 'setting' to 'setting+subId', and using the value stored * for 'setting' as default. Reset the default (since it may have a user set * value). */ int default_val = val; if (name.equals(Settings.Global.MOBILE_DATA)) { default_val = "true".equalsIgnoreCase( SystemProperties.get("ro.com.android.mobiledata", "true")) ? 1 : 0; } if (default_val != val) { Settings.Global.putInt(cr, name, default_val); } return val; } catch (SettingNotFoundException exc) { throw new SettingNotFoundException(name); } } } }