Loading Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -554,6 +554,7 @@ java_defaults { "telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl", "telephony/java/com/android/internal/telephony/ISms.aidl", "telephony/java/com/android/internal/telephony/ISub.aidl", "telephony/java/com/android/internal/telephony/IAnas.aidl", "telephony/java/com/android/internal/telephony/ITelephony.aidl", "telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl", "telephony/java/com/android/internal/telephony/IWapPushManager.aidl", Loading api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -42623,6 +42623,7 @@ package android.telephony { method public static int getDefaultSmsSubscriptionId(); method public static int getDefaultSubscriptionId(); method public static int getDefaultVoiceSubscriptionId(); method public java.util.List<android.telephony.SubscriptionInfo> getOpportunisticSubscriptions(int); method public java.util.List<android.telephony.SubscriptionPlan> getSubscriptionPlans(int); method public boolean isNetworkRoaming(int); method public void removeOnSubscriptionsChangedListener(android.telephony.SubscriptionManager.OnSubscriptionsChangedListener); telephony/java/android/telephony/SubscriptionManager.java +6 −5 Original line number Diff line number Diff line Loading @@ -2007,20 +2007,21 @@ public class SubscriptionManager { } /** * Get User downloaded Profiles. * Get opportunistic data Profiles. * * Provide all available user downloaded profile on the phone. * @param slotId on which phone the switch will operate on * Provide all available user downloaded profiles on phone which are used only for * opportunistic data. * @param slotIndex slot on which the profiles are queried from. */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) List<SubscriptionInfo> getOpportunisticSubscriptions(int slotId) { public List<SubscriptionInfo> getOpportunisticSubscriptions(int slotIndex) { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; List<SubscriptionInfo> subInfoList = null; try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { subInfoList = iSub.getOpportunisticSubscriptions(slotId, pkgForDebug); subInfoList = iSub.getOpportunisticSubscriptions(slotIndex, pkgForDebug); } } catch (RemoteException ex) { // ignore it Loading telephony/java/android/telephony/TelephonyManager.java +63 −1 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.ims.internal.IImsServiceFeatureCallback; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telecom.ITelecomService; import com.android.internal.telephony.CellNetworkScanResult; import com.android.internal.telephony.IAnas; import com.android.internal.telephony.IPhoneSubInfo; import com.android.internal.telephony.ITelephony; import com.android.internal.telephony.ITelephonyRegistry; Loading Loading @@ -4327,6 +4328,10 @@ public class TelephonyManager { return ITelephonyRegistry.Stub.asInterface(ServiceManager.getService("telephony.registry")); } private IAnas getIAnas() { return IAnas.Stub.asInterface(ServiceManager.getService("ianas")); } // // // PhoneStateListener Loading Loading @@ -8193,7 +8198,6 @@ public class TelephonyManager { return UNKNOWN_CARRIER_ID_LIST_VERSION; } /** * How many modems can have simultaneous data connections. * @hide Loading @@ -8211,4 +8215,62 @@ public class TelephonyManager { } return 0; } /** * Enable or disable AlternativeNetworkAccessService. * * This method should be called to enable or disable * AlternativeNetworkAccess service on the device. * * <p> * Requires Permission: * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} * * @param enable enable(True) or disable(False) * @return returns true if successfully set. * @hide */ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setAlternativeNetworkAccessState(boolean enable) { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; boolean ret = false; try { IAnas iAlternativeAccessService = getIAnas(); if (iAlternativeAccessService != null) { ret = iAlternativeAccessService.setEnable(enable, pkgForDebug); } } catch (RemoteException ex) { Rlog.e(TAG, "enableAlternativeNetworkAccess RemoteException", ex); } return ret; } /** * is AlternativeNetworkAccessService enabled * * This method should be called to determine if the AlternativeNetworkAccessService is * enabled * * <p> * Requires Permission: * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isAlternativeNetworkAccessEnabled() { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; boolean isEnabled = false; try { IAnas iAlternativeAccessService = getIAnas(); if (iAlternativeAccessService != null) { isEnabled = iAlternativeAccessService.isEnabled(pkgForDebug); } } catch (RemoteException ex) { Rlog.e(TAG, "enableAlternativeNetworkAccess RemoteException", ex); } return isEnabled; } } telephony/java/com/android/internal/telephony/IAnas.aidl 0 → 100755 +52 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony; interface IAnas { /** * Enable or disable Alternative Network Access service. * * This method should be called to enable or disable * AlternativeNetworkAccess service on the device. * * <p> * Requires Permission: * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} * Or the calling app has carrier privileges. @see #hasCarrierPrivileges * * @param enable enable(True) or disable(False) * @param callingPackage caller's package name * @return returns true if successfully set. */ boolean setEnable(boolean enable, String callingPackage); /** * is Alternative Network Access service enabled * * This method should be called to determine if the Alternative Network Access service is enabled * * <p> * Requires Permission: * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} * Or the calling app has carrier privileges. @see #hasCarrierPrivileges * * @param callingPackage caller's package name */ boolean isEnabled(String callingPackage); } Loading
Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -554,6 +554,7 @@ java_defaults { "telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl", "telephony/java/com/android/internal/telephony/ISms.aidl", "telephony/java/com/android/internal/telephony/ISub.aidl", "telephony/java/com/android/internal/telephony/IAnas.aidl", "telephony/java/com/android/internal/telephony/ITelephony.aidl", "telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl", "telephony/java/com/android/internal/telephony/IWapPushManager.aidl", Loading
api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -42623,6 +42623,7 @@ package android.telephony { method public static int getDefaultSmsSubscriptionId(); method public static int getDefaultSubscriptionId(); method public static int getDefaultVoiceSubscriptionId(); method public java.util.List<android.telephony.SubscriptionInfo> getOpportunisticSubscriptions(int); method public java.util.List<android.telephony.SubscriptionPlan> getSubscriptionPlans(int); method public boolean isNetworkRoaming(int); method public void removeOnSubscriptionsChangedListener(android.telephony.SubscriptionManager.OnSubscriptionsChangedListener);
telephony/java/android/telephony/SubscriptionManager.java +6 −5 Original line number Diff line number Diff line Loading @@ -2007,20 +2007,21 @@ public class SubscriptionManager { } /** * Get User downloaded Profiles. * Get opportunistic data Profiles. * * Provide all available user downloaded profile on the phone. * @param slotId on which phone the switch will operate on * Provide all available user downloaded profiles on phone which are used only for * opportunistic data. * @param slotIndex slot on which the profiles are queried from. */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) List<SubscriptionInfo> getOpportunisticSubscriptions(int slotId) { public List<SubscriptionInfo> getOpportunisticSubscriptions(int slotIndex) { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; List<SubscriptionInfo> subInfoList = null; try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { subInfoList = iSub.getOpportunisticSubscriptions(slotId, pkgForDebug); subInfoList = iSub.getOpportunisticSubscriptions(slotIndex, pkgForDebug); } } catch (RemoteException ex) { // ignore it Loading
telephony/java/android/telephony/TelephonyManager.java +63 −1 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.ims.internal.IImsServiceFeatureCallback; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telecom.ITelecomService; import com.android.internal.telephony.CellNetworkScanResult; import com.android.internal.telephony.IAnas; import com.android.internal.telephony.IPhoneSubInfo; import com.android.internal.telephony.ITelephony; import com.android.internal.telephony.ITelephonyRegistry; Loading Loading @@ -4327,6 +4328,10 @@ public class TelephonyManager { return ITelephonyRegistry.Stub.asInterface(ServiceManager.getService("telephony.registry")); } private IAnas getIAnas() { return IAnas.Stub.asInterface(ServiceManager.getService("ianas")); } // // // PhoneStateListener Loading Loading @@ -8193,7 +8198,6 @@ public class TelephonyManager { return UNKNOWN_CARRIER_ID_LIST_VERSION; } /** * How many modems can have simultaneous data connections. * @hide Loading @@ -8211,4 +8215,62 @@ public class TelephonyManager { } return 0; } /** * Enable or disable AlternativeNetworkAccessService. * * This method should be called to enable or disable * AlternativeNetworkAccess service on the device. * * <p> * Requires Permission: * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} * * @param enable enable(True) or disable(False) * @return returns true if successfully set. * @hide */ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setAlternativeNetworkAccessState(boolean enable) { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; boolean ret = false; try { IAnas iAlternativeAccessService = getIAnas(); if (iAlternativeAccessService != null) { ret = iAlternativeAccessService.setEnable(enable, pkgForDebug); } } catch (RemoteException ex) { Rlog.e(TAG, "enableAlternativeNetworkAccess RemoteException", ex); } return ret; } /** * is AlternativeNetworkAccessService enabled * * This method should be called to determine if the AlternativeNetworkAccessService is * enabled * * <p> * Requires Permission: * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} * @hide */ @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isAlternativeNetworkAccessEnabled() { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; boolean isEnabled = false; try { IAnas iAlternativeAccessService = getIAnas(); if (iAlternativeAccessService != null) { isEnabled = iAlternativeAccessService.isEnabled(pkgForDebug); } } catch (RemoteException ex) { Rlog.e(TAG, "enableAlternativeNetworkAccess RemoteException", ex); } return isEnabled; } }
telephony/java/com/android/internal/telephony/IAnas.aidl 0 → 100755 +52 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony; interface IAnas { /** * Enable or disable Alternative Network Access service. * * This method should be called to enable or disable * AlternativeNetworkAccess service on the device. * * <p> * Requires Permission: * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} * Or the calling app has carrier privileges. @see #hasCarrierPrivileges * * @param enable enable(True) or disable(False) * @param callingPackage caller's package name * @return returns true if successfully set. */ boolean setEnable(boolean enable, String callingPackage); /** * is Alternative Network Access service enabled * * This method should be called to determine if the Alternative Network Access service is enabled * * <p> * Requires Permission: * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} * Or the calling app has carrier privileges. @see #hasCarrierPrivileges * * @param callingPackage caller's package name */ boolean isEnabled(String callingPackage); }