summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jack Yu <jackyu@google.com> 2019-06-06 17:13:06 -0700
committer Nathan Harold <nharold@google.com> 2019-06-17 18:29:09 -0700
commit807a82b3aade518f5140233cb930c484c82e6416 (patch)
treeb1e5e7266aad1f2e0e6a3e7d5c28346aa42346da
parent84b311d3a2de2be79ec307945335f1c637c2d00b (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)
-rw-r--r--telephony/java/android/telephony/SubscriptionManager.java20
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java8
-rwxr-xr-xtelephony/java/com/android/internal/telephony/ISub.aidl2
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();
}