diff options
| author | 2019-06-06 17:13:06 -0700 | |
|---|---|---|
| committer | 2019-06-17 18:29:09 -0700 | |
| commit | 807a82b3aade518f5140233cb930c484c82e6416 (patch) | |
| tree | b1e5e7266aad1f2e0e6a3e7d5c28346aa42346da | |
| parent | 84b311d3a2de2be79ec307945335f1c637c2d00b (diff) | |
Fixed tethering failed when device is on CBRS
Fixed by using the correct sub id for CBRS subscription
Bug: 133852860
Test: Manual
Merged-In: If01e17becce9684556345eb76512f617b9a9278c
Change-Id: If01e17becce9684556345eb76512f617b9a9278c
(cherry picked from commit a952d2018bf9872565d4ac967ea433b6e9161543)
3 files changed, 26 insertions, 4 deletions
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 65db458df159..12422c679bd0 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -3175,4 +3175,24 @@ public class SubscriptionManager { return result; } + + /** + * Get active data subscription id. + * See {@link PhoneStateListener#onActiveDataSubscriptionIdChanged(int)} for the details. + * + * @return Active data subscription id + * + * //TODO: Refactor this API in b/134702460 + * @hide + */ + public static int getActiveDataSubscriptionId() { + try { + ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); + if (iSub != null) { + return iSub.getActiveDataSubscriptionId(); + } + } catch (RemoteException ex) { + } + return SubscriptionManager.INVALID_SUBSCRIPTION_ID; + } } diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 87ab1753a45b..3ae9b33cb145 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -2418,7 +2418,7 @@ public class TelephonyManager { @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public @NetworkType int getNetworkType() { - return getNetworkType(getSubId(SubscriptionManager.getDefaultDataSubscriptionId())); + return getNetworkType(getSubId(SubscriptionManager.getActiveDataSubscriptionId())); } /** @@ -2501,7 +2501,7 @@ public class TelephonyManager { @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public @NetworkType int getDataNetworkType() { - return getDataNetworkType(getSubId(SubscriptionManager.getDefaultDataSubscriptionId())); + return getDataNetworkType(getSubId(SubscriptionManager.getActiveDataSubscriptionId())); } /** @@ -7245,7 +7245,7 @@ public class TelephonyManager { * @hide */ public boolean getTetherApnRequired() { - return getTetherApnRequired(getSubId(SubscriptionManager.getDefaultDataSubscriptionId())); + return getTetherApnRequired(getSubId(SubscriptionManager.getActiveDataSubscriptionId())); } /** @@ -8011,7 +8011,7 @@ public class TelephonyManager { ITelephony telephony = getITelephony(); if (telephony != null) return telephony.isDataConnectivityPossible(getSubId(SubscriptionManager - .getDefaultDataSubscriptionId())); + .getActiveDataSubscriptionId())); } catch (RemoteException e) { Log.e(TAG, "Error calling ITelephony#isDataAllowed", e); } diff --git a/telephony/java/com/android/internal/telephony/ISub.aidl b/telephony/java/com/android/internal/telephony/ISub.aidl index f248893ec638..a481c29ed90b 100755 --- a/telephony/java/com/android/internal/telephony/ISub.aidl +++ b/telephony/java/com/android/internal/telephony/ISub.aidl @@ -285,4 +285,6 @@ interface ISub { boolean isActiveSubId(int subId, String callingPackage); boolean setAlwaysAllowMmsData(int subId, boolean alwaysAllow); + + int getActiveDataSubscriptionId(); } |