diff options
| author | 2019-01-04 17:38:36 -0800 | |
|---|---|---|
| committer | 2019-01-14 18:00:40 -0800 | |
| commit | e0215a702643d41eedebd3ed89bef3a73c2aafdc (patch) | |
| tree | 8ce971f68c8fc0f8916c2f5c42116928ef3a0b64 | |
| parent | c83e37317f7ea348bff27417d02fc84ad20c7405 (diff) | |
add getPreferredDataSubId to SubscriptionManager
and rename setPreferredData -> serPreferredDataSubId
Bug: 117833883
Test: sanity
Change-Id: I67b18f1ef450c3d9e5615b3d2ec8a53a0691d7af
Merged-In: I67b18f1ef450c3d9e5615b3d2ec8a53a0691d7af
5 files changed, 50 insertions, 12 deletions
diff --git a/telephony/java/android/telephony/PhoneStateListener.java b/telephony/java/android/telephony/PhoneStateListener.java index a16d7eb2ec03..c81670139eae 100644 --- a/telephony/java/android/telephony/PhoneStateListener.java +++ b/telephony/java/android/telephony/PhoneStateListener.java @@ -296,7 +296,7 @@ public class PhoneStateListener { /** * Listen for changes to preferred data subId. - * See {@link SubscriptionManager#setPreferredData(int)} + * See {@link SubscriptionManager#setPreferredDataSubId(int)} * for more details. * * @see #onPreferredDataSubIdChanged diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index fae5d30f17b1..7ccc16c5107d 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -2405,10 +2405,39 @@ public class SubscriptionManager { * */ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) - public void setPreferredData(int subId) { - if (VDBG) logd("[setPreferredData]+ subId:" + subId); - setSubscriptionPropertyHelper(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, - "setPreferredData", (iSub)-> iSub.setPreferredData(subId)); + public void setPreferredDataSubscriptionId(int subId) { + if (VDBG) logd("[setPreferredDataSubscriptionId]+ subId:" + subId); + setSubscriptionPropertyHelper(DEFAULT_SUBSCRIPTION_ID, "setPreferredDataSubscriptionId", + (iSub)-> iSub.setPreferredDataSubscriptionId(subId)); + } + + /** + * Get which subscription is preferred for cellular data. + * It's also usually the subscription we set up internet connection on. + * + * PreferredData overwrites user setting of default data subscription. And it's used + * by AlternativeNetworkService or carrier apps to switch primary and CBRS + * subscription dynamically in multi-SIM devices. + * + * @return preferred subscription id for cellular data. {@link DEFAULT_SUBSCRIPTION_ID} if + * there's no prefered subscription. + * + * @hide + * + */ + @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) + public int getPreferredDataSubscriptionId() { + int preferredSubId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID; + try { + ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); + if (iSub != null) { + preferredSubId = iSub.getPreferredDataSubscriptionId(); + } + } catch (RemoteException ex) { + // ignore it + } + + return preferredSubId; } /** diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 621b8a6b30bb..98927f3bcda5 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -9738,10 +9738,11 @@ public class TelephonyManager { try { IOns iOpportunisticNetworkService = getIOns(); if (iOpportunisticNetworkService != null) { - return iOpportunisticNetworkService.setPreferredData(subId, pkgForDebug); + return iOpportunisticNetworkService + .setPreferredDataSubscriptionId(subId, pkgForDebug); } } catch (RemoteException ex) { - Rlog.e(TAG, "setPreferredData RemoteException", ex); + Rlog.e(TAG, "setPreferredDataSubscriptionId RemoteException", ex); } return false; } @@ -9762,10 +9763,10 @@ public class TelephonyManager { try { IOns iOpportunisticNetworkService = getIOns(); if (iOpportunisticNetworkService != null) { - subId = iOpportunisticNetworkService.getPreferredData(pkgForDebug); + subId = iOpportunisticNetworkService.getPreferredDataSubscriptionId(pkgForDebug); } } catch (RemoteException ex) { - Rlog.e(TAG, "getPreferredData RemoteException", ex); + Rlog.e(TAG, "getPreferredDataSubscriptionId RemoteException", ex); } return subId; } diff --git a/telephony/java/com/android/internal/telephony/IOns.aidl b/telephony/java/com/android/internal/telephony/IOns.aidl index d6779f1fb334..0e3d12b7f838 100755 --- a/telephony/java/com/android/internal/telephony/IOns.aidl +++ b/telephony/java/com/android/internal/telephony/IOns.aidl @@ -66,7 +66,7 @@ interface IOns { * @return true if request is accepted, else false. * */ - boolean setPreferredData(int subId, String callingPackage); + boolean setPreferredDataSubscriptionId(int subId, String callingPackage); /** * Get preferred opportunistic data subscription Id @@ -78,7 +78,7 @@ interface IOns { * subscription id * */ - int getPreferredData(String callingPackage); + int getPreferredDataSubscriptionId(String callingPackage); /** * Update availability of a list of networks in the current location. diff --git a/telephony/java/com/android/internal/telephony/ISub.aidl b/telephony/java/com/android/internal/telephony/ISub.aidl index 65d1a920a324..78315f7040c5 100755 --- a/telephony/java/com/android/internal/telephony/ISub.aidl +++ b/telephony/java/com/android/internal/telephony/ISub.aidl @@ -200,7 +200,15 @@ interface ISub { * @hide * */ - int setPreferredData(int subId); + int setPreferredDataSubscriptionId(int subId); + + /** + * Get which subscription is preferred for cellular data. + * + * @hide + * + */ + int getPreferredDataSubscriptionId(); /** * Get User downloaded Profiles. |