221 lines
6.3 KiB
Java
221 lines
6.3 KiB
Java
/*
|
|
* Copyright (C) 2014 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;
|
|
|
|
import android.compat.annotation.UnsupportedAppUsage;
|
|
import android.os.Build;
|
|
import android.telephony.TelephonyManager;
|
|
|
|
/**
|
|
* Object to indicate the phone radio capability.
|
|
*
|
|
* @hide
|
|
*/
|
|
public class RadioCapability {
|
|
|
|
/*
|
|
* The RC_PHASE constants are the set of valid values for the mPhase field.
|
|
*/
|
|
|
|
/**
|
|
* LM is configured is initial value and value after FINISH completes.
|
|
*/
|
|
public static final int RC_PHASE_CONFIGURED = 0;
|
|
|
|
/**
|
|
* START is sent before Apply and indicates that an APPLY will be
|
|
* forthcoming with these same parameters.
|
|
*/
|
|
public static final int RC_PHASE_START = 1;
|
|
|
|
/**
|
|
* APPLY is sent after all LM's receive START and returned
|
|
* RIL_RadioCapability. status = 0, if any START's fail no APPLY will
|
|
* be sent.
|
|
*/
|
|
public static final int RC_PHASE_APPLY = 2;
|
|
|
|
/**
|
|
* UNSOL_RSP is sent with RIL_UNSOL_RADIO_CAPABILITY.
|
|
*/
|
|
public static final int RC_PHASE_UNSOL_RSP = 3;
|
|
|
|
/**
|
|
* RC_PHASE_FINISH is sent after all previous phases have completed.
|
|
* If an error occurs in any previous commands the RIL_RadioAccessesFamily
|
|
* and LogicalModemId fields will be the prior configuration thus
|
|
* restoring the configuration to the previous value. An error returned
|
|
* by this command will generally be ignored or may cause that logical
|
|
* modem to be removed from service
|
|
*/
|
|
public static final int RC_PHASE_FINISH = 4;
|
|
|
|
/*
|
|
* The RC_STATUS_xxx constants are returned in the mStatus field.
|
|
*/
|
|
|
|
/**
|
|
* this parameter is no meaning with RC_Phase_START, RC_Phase_APPLY
|
|
*/
|
|
public static final int RC_STATUS_NONE = 0;
|
|
|
|
/**
|
|
* Tell modem the action transaction of set radio capability is
|
|
* success with RC_Phase_FINISH.
|
|
*/
|
|
public static final int RC_STATUS_SUCCESS = 1;
|
|
|
|
/**
|
|
* tell modem the action transaction of set radio capability is fail
|
|
* with RC_Phase_FINISH
|
|
*/
|
|
public static final int RC_STATUS_FAIL = 2;
|
|
|
|
/** Version of structure, RIL_RadioCapability_Version */
|
|
private static final int RADIO_CAPABILITY_VERSION = 1;
|
|
|
|
/** Unique session value defined by framework returned in all "responses/unsol" */
|
|
private int mSession;
|
|
|
|
/** CONFIGURED, START, APPLY, FINISH */
|
|
private int mPhase;
|
|
|
|
/**
|
|
* RadioAccessFamily is a bit field of radio access technologies the
|
|
* for the modem is currently supporting. The initial value returned
|
|
* my the modem must the the set of bits that the modem currently supports.
|
|
* see {@link android.telephony.TelephonyManager.NetworkTypeBitMask}
|
|
*/
|
|
@TelephonyManager.NetworkTypeBitMask
|
|
private int mRadioAccessFamily;
|
|
|
|
/**
|
|
* Logical modem this radio is be connected to.
|
|
* This must be Globally unique on convention is
|
|
* to use a registered name such as com.google.android.lm0
|
|
*/
|
|
private String mLogicalModemUuid;
|
|
|
|
/** Return status and an input parameter for RC_Phase_FINISH */
|
|
private int mStatus;
|
|
|
|
/** Phone ID of phone */
|
|
private int mPhoneId;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param phoneId the phone ID
|
|
* @param session the request transaction id
|
|
* @param phase the request phase id
|
|
* @param radioAccessFamily the phone radio access family defined in
|
|
* {@link android.telephony.TelephonyManager.NetworkTypeBitMask}
|
|
* It's a bit mask value to represent the support type.
|
|
* @param logicalModemUuid the logicalModem UUID which phone connected to
|
|
* @param status tell modem the action transaction of
|
|
* set radio capability is success or fail with RC_Phase_FINISH
|
|
*/
|
|
public RadioCapability(int phoneId, int session, int phase,
|
|
@TelephonyManager.NetworkTypeBitMask int radioAccessFamily,
|
|
String logicalModemUuid, int status) {
|
|
mPhoneId = phoneId;
|
|
mSession = session;
|
|
mPhase = phase;
|
|
mRadioAccessFamily = radioAccessFamily;
|
|
mLogicalModemUuid = logicalModemUuid;
|
|
mStatus = status;
|
|
}
|
|
|
|
/**
|
|
* Get phone ID.
|
|
*
|
|
* @return phone ID
|
|
*/
|
|
public int getPhoneId() {
|
|
return mPhoneId;
|
|
}
|
|
|
|
/**
|
|
* Get radio capability version.
|
|
*
|
|
* @return radio capability version
|
|
*/
|
|
public int getVersion() {
|
|
return RADIO_CAPABILITY_VERSION;
|
|
}
|
|
|
|
/**
|
|
* Get unique session id.
|
|
*
|
|
* @return unique session id
|
|
*/
|
|
public int getSession() {
|
|
return mSession;
|
|
}
|
|
|
|
|
|
/**
|
|
* get radio capability phase.
|
|
*
|
|
* @return RadioCapabilityPhase, including CONFIGURED, START, APPLY, FINISH
|
|
*/
|
|
public int getPhase() {
|
|
return mPhase;
|
|
}
|
|
|
|
/**
|
|
* get radio access family.
|
|
*
|
|
* @return radio access family
|
|
*/
|
|
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
|
public int getRadioAccessFamily() {
|
|
return mRadioAccessFamily;
|
|
}
|
|
|
|
/**
|
|
* get logical modem Universally Unique ID.
|
|
*
|
|
* @return logical modem uuid
|
|
*/
|
|
public String getLogicalModemUuid() {
|
|
return mLogicalModemUuid;
|
|
}
|
|
|
|
/**
|
|
* get request status.
|
|
*
|
|
* @return status and an input parameter for RC_PHASE_FINISH
|
|
*/
|
|
public int getStatus() {
|
|
return mStatus;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "{mPhoneId = " + mPhoneId
|
|
+ " mVersion=" + getVersion()
|
|
+ " mSession=" + getSession()
|
|
+ " mPhase=" + getPhase()
|
|
+ " mRadioAccessFamily=" + getRadioAccessFamily()
|
|
+ " mLogicModemId=" + getLogicalModemUuid()
|
|
+ " mStatus=" + getStatus()
|
|
+ "}";
|
|
}
|
|
}
|
|
|