Merge "Add new API for unattended reboot."
This commit is contained in:
@@ -10541,6 +10541,7 @@ package android.telephony {
|
|||||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean matchesCurrentSimOperator(@NonNull String, int, @Nullable String);
|
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean matchesCurrentSimOperator(@NonNull String, int, @Nullable String);
|
||||||
method public boolean needsOtaServiceProvisioning();
|
method public boolean needsOtaServiceProvisioning();
|
||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyOtaEmergencyNumberDbInstalled();
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyOtaEmergencyNumberDbInstalled();
|
||||||
|
method @RequiresPermission(android.Manifest.permission.REBOOT) public int prepareForUnattendedReboot();
|
||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean rebootRadio();
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean rebootRadio();
|
||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void reportDefaultNetworkStatus(boolean);
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void reportDefaultNetworkStatus(boolean);
|
||||||
method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.MODIFY_PHONE_STATE}) public void requestCellInfoUpdate(@NonNull android.os.WorkSource, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CellInfoCallback);
|
method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.MODIFY_PHONE_STATE}) public void requestCellInfoUpdate(@NonNull android.os.WorkSource, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CellInfoCallback);
|
||||||
@@ -10660,6 +10661,9 @@ package android.telephony {
|
|||||||
field public static final int NR_DUAL_CONNECTIVITY_DISABLE = 2; // 0x2
|
field public static final int NR_DUAL_CONNECTIVITY_DISABLE = 2; // 0x2
|
||||||
field public static final int NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE = 3; // 0x3
|
field public static final int NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE = 3; // 0x3
|
||||||
field public static final int NR_DUAL_CONNECTIVITY_ENABLE = 1; // 0x1
|
field public static final int NR_DUAL_CONNECTIVITY_ENABLE = 1; // 0x1
|
||||||
|
field public static final int PREPARE_UNATTENDED_REBOOT_ERROR = 2; // 0x2
|
||||||
|
field public static final int PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED = 1; // 0x1
|
||||||
|
field public static final int PREPARE_UNATTENDED_REBOOT_SUCCESS = 0; // 0x0
|
||||||
field public static final int RADIO_POWER_OFF = 0; // 0x0
|
field public static final int RADIO_POWER_OFF = 0; // 0x0
|
||||||
field public static final int RADIO_POWER_ON = 1; // 0x1
|
field public static final int RADIO_POWER_ON = 1; // 0x1
|
||||||
field public static final int RADIO_POWER_UNAVAILABLE = 2; // 0x2
|
field public static final int RADIO_POWER_UNAVAILABLE = 2; // 0x2
|
||||||
|
|||||||
@@ -4414,4 +4414,7 @@
|
|||||||
|
|
||||||
<!-- Whether to select voice/data/sms preference without user confirmation -->
|
<!-- Whether to select voice/data/sms preference without user confirmation -->
|
||||||
<bool name="config_voice_data_sms_auto_fallback">false</bool>
|
<bool name="config_voice_data_sms_auto_fallback">false</bool>
|
||||||
|
|
||||||
|
<!-- Whether to allow the caching of the SIM PIN for verification after unattended reboot -->
|
||||||
|
<bool name="config_allow_pin_storage_for_unattended_reboot">true</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -2612,6 +2612,7 @@
|
|||||||
<java-symbol type="bool" name="config_defaultWindowFeatureContextMenu" />
|
<java-symbol type="bool" name="config_defaultWindowFeatureContextMenu" />
|
||||||
<java-symbol type="bool" name="config_overrideRemoteViewsActivityTransition" />
|
<java-symbol type="bool" name="config_overrideRemoteViewsActivityTransition" />
|
||||||
<java-symbol type="attr" name="colorProgressBackgroundNormal" />
|
<java-symbol type="attr" name="colorProgressBackgroundNormal" />
|
||||||
|
<java-symbol type="bool" name="config_allow_pin_storage_for_unattended_reboot" />
|
||||||
|
|
||||||
<java-symbol type="layout" name="simple_account_item" />
|
<java-symbol type="layout" name="simple_account_item" />
|
||||||
<java-symbol type="string" name="prohibit_manual_network_selection_in_gobal_mode" />
|
<java-symbol type="string" name="prohibit_manual_network_selection_in_gobal_mode" />
|
||||||
|
|||||||
@@ -4157,6 +4157,21 @@ public class CarrierConfigManager {
|
|||||||
public static final String KEY_ALLOWED_INITIAL_ATTACH_APN_TYPES_STRING_ARRAY =
|
public static final String KEY_ALLOWED_INITIAL_ATTACH_APN_TYPES_STRING_ARRAY =
|
||||||
"allowed_initial_attach_apn_types_string_array";
|
"allowed_initial_attach_apn_types_string_array";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Boolean indicating whether the SIM PIN can be stored and verified
|
||||||
|
* seamlessly after an unattended reboot.
|
||||||
|
*
|
||||||
|
* The device configuration value {@code config_allow_pin_storage_for_unattended_reboot}
|
||||||
|
* ultimately controls whether this carrier configuration option is used. Where
|
||||||
|
* {@code config_allow_pin_storage_for_unattended_reboot} is false, the value of the
|
||||||
|
* {@link #KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL} carrier configuration option is
|
||||||
|
* ignored.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final String KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL =
|
||||||
|
"store_sim_pin_for_unattended_reboot_bool";
|
||||||
|
|
||||||
/** The default value for every variable. */
|
/** The default value for every variable. */
|
||||||
private final static PersistableBundle sDefaults;
|
private final static PersistableBundle sDefaults;
|
||||||
|
|
||||||
@@ -4710,6 +4725,7 @@ public class CarrierConfigManager {
|
|||||||
sDefaults.putInt(KEY_DEFAULT_RTT_MODE_INT, 0);
|
sDefaults.putInt(KEY_DEFAULT_RTT_MODE_INT, 0);
|
||||||
sDefaults.putStringArray(KEY_ALLOWED_INITIAL_ATTACH_APN_TYPES_STRING_ARRAY,
|
sDefaults.putStringArray(KEY_ALLOWED_INITIAL_ATTACH_APN_TYPES_STRING_ARRAY,
|
||||||
new String[]{"ia", "default", "ims", "mms", "dun", "emergency"});
|
new String[]{"ia", "default", "ims", "mms", "dun", "emergency"});
|
||||||
|
sDefaults.putBoolean(KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -121,12 +121,10 @@ import java.lang.annotation.RetentionPolicy;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
@@ -14824,4 +14822,66 @@ public class TelephonyManager {
|
|||||||
Log.e(TAG, "Error calling ITelephony#clearSignalStrengthUpdateRequest", e);
|
Log.e(TAG, "Error calling ITelephony#clearSignalStrengthUpdateRequest", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The unattended reboot was prepared successfully.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi
|
||||||
|
public static final int PREPARE_UNATTENDED_REBOOT_SUCCESS = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The unattended reboot was prepared, but the user will need to manually
|
||||||
|
* enter the PIN code of at least one SIM card present in the device.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi
|
||||||
|
public static final int PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The unattended reboot was not prepared due to generic error.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi
|
||||||
|
public static final int PREPARE_UNATTENDED_REBOOT_ERROR = 2;
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
@IntDef(prefix = {"PREPARE_UNATTENDED_REBOOT_"},
|
||||||
|
value = {
|
||||||
|
PREPARE_UNATTENDED_REBOOT_SUCCESS,
|
||||||
|
PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED,
|
||||||
|
PREPARE_UNATTENDED_REBOOT_ERROR
|
||||||
|
})
|
||||||
|
public @interface PrepareUnattendedRebootResult {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepare TelephonyManager for an unattended reboot. The reboot is required to be done
|
||||||
|
* shortly (e.g. within 15 seconds) after the API is invoked.
|
||||||
|
*
|
||||||
|
* <p>Requires Permission:
|
||||||
|
* {@link android.Manifest.permission#REBOOT}
|
||||||
|
*
|
||||||
|
* @return {@link #PREPARE_UNATTENDED_REBOOT_SUCCESS} in case of success.
|
||||||
|
* {@link #PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED} if the device contains
|
||||||
|
* at least one SIM card for which the user needs to manually enter the PIN
|
||||||
|
* code after the reboot. {@link #PREPARE_UNATTENDED_REBOOT_ERROR} in case
|
||||||
|
* of error.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi
|
||||||
|
@RequiresPermission(android.Manifest.permission.REBOOT)
|
||||||
|
@PrepareUnattendedRebootResult
|
||||||
|
public int prepareForUnattendedReboot() {
|
||||||
|
try {
|
||||||
|
ITelephony service = getITelephony();
|
||||||
|
if (service != null) {
|
||||||
|
return service.prepareForUnattendedReboot();
|
||||||
|
}
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Telephony#prepareForUnattendedReboot RemoteException", e);
|
||||||
|
e.rethrowFromSystemServer();
|
||||||
|
}
|
||||||
|
return PREPARE_UNATTENDED_REBOOT_ERROR;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2414,4 +2414,18 @@ interface ITelephony {
|
|||||||
*/
|
*/
|
||||||
void clearSignalStrengthUpdateRequest(int subId, in SignalStrengthUpdateRequest request,
|
void clearSignalStrengthUpdateRequest(int subId, in SignalStrengthUpdateRequest request,
|
||||||
String callingPackage);
|
String callingPackage);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepare TelephonyManager for an unattended reboot. The reboot is
|
||||||
|
* required to be done shortly after the API is invoked.
|
||||||
|
*
|
||||||
|
* Requires system privileges.
|
||||||
|
*
|
||||||
|
* @return {@link #PREPARE_UNATTENDED_REBOOT_SUCCESS} in case of success.
|
||||||
|
* {@link #PREPARE_UNATTENDED_REBOOT_PIN_REQUIRED} if the device contains
|
||||||
|
* at least one SIM card for which the user needs to manually enter the PIN
|
||||||
|
* code after the reboot. {@link #PREPARE_UNATTENDED_REBOOT_ERROR} in case
|
||||||
|
* of error.
|
||||||
|
*/
|
||||||
|
int prepareForUnattendedReboot();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user