
修改系统属性:rotelephonydefault_network
修改说明:
可连续给两个值(如4,1),卡1用的是4,卡2用的是1。数字代表的意义见下方的相关代码片段。
相关源码位置:
frameworks/base/telephony/java/com/android/internal/telephony/RILConstantsjava
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelperjava
相关代码片段:
/ NETWORK_MODE_ See rilh RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE /
int NETWORK_MODE_WCDMA_PREF = 0; / GSM/WCDMA (WCDMA preferred) /
int NETWORK_MODE_GSM_ONLY = 1; / GSM only /
int NETWORK_MODE_WCDMA_ONLY = 2; / WCDMA only /
int NETWORK_MODE_GSM_UMTS = 3; / GSM/WCDMA (auto mode, according to PRL)
AVAILABLE Application Settings menu/
int NETWORK_MODE_CDMA = 4; / CDMA and EvDo (auto mode, according to PRL)
AVAILABLE Application Settings menu/
int NETWORK_MODE_CDMA_NO_EVDO = 5; / CDMA only /
int NETWORK_MODE_EVDO_NO_CDMA = 6; / EvDo only /
int NETWORK_MODE_GLOBAL = 7; / GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL)
AVAILABLE Application Settings menu/
int NETWORK_MODE_LTE_CDMA_EVDO = 8; / LTE, CDMA and EvDo /
int NETWORK_MODE_LTE_GSM_WCDMA = 9; / LTE, GSM/WCDMA /
int NETWORK_MODE_LTE_CMDA_EVDO_GSM_WCDMA = 10; / LTE, CDMA, EvDo, GSM/WCDMA /
int NETWORK_MODE_LTE_ONLY = 11; / LTE Only mode /
int NETWORK_MODE_LTE_WCDMA = 12; / LTE/WCDMA /
int NETWORK_MODE_TD_SCDMA_ONLY = 13; / TD-SCDMA only /
int NETWORK_MODE_TD_SCDMA_WCDMA = 14; / TD-SCDMA and WCDMA /
int NETWORK_MODE_TD_SCDMA_LTE = 15; / TD-SCDMA and LTE /
int NETWORK_MODE_TD_SCDMA_GSM = 16; / TD-SCDMA and GSM /
int NETWORK_MODE_TD_SCDMA_GSM_LTE = 17; / TD-SCDMA,GSM and LTE /
int NETWORK_MODE_TD_SCDMA_GSM_WCDMA = 18; / TD-SCDMA, GSM/WCDMA /
int NETWORK_MODE_TD_SCDMA_WCDMA_LTE = 19; / TD-SCDMA, WCDMA and LTE /
int NETWORK_MODE_TD_SCDMA_GSM_WCDMA_LTE = 20; / TD-SCDMA, GSM/WCDMA and LTE /
int NETWORK_MODE_TD_SCDMA_CDMA_EVDO_GSM_WCDMA = 21; /TD-SCDMA,EvDo,CDMA,GSM/WCDMA/
int NETWORK_MODE_TD_SCDMA_LTE_CDMA_EVDO_GSM_WCDMA = 22; / TD-SCDMA/LTE/GSM/WCDMA, CDMA, and
EvDo /
复制代码
// Set the preferred network mode
int defaultNetworkType = RILConstantsPREFERRED_NETWORK_MODE;
int numPhones = MSimTelephonyManagergetDefault()getPhoneCount();
String networkMode = SystemPropertiesget("rotelephonydefault_network");
if (networkMode != null) {
if (numPhones == MSimConstantsMAX_PHONE_COUNT_SINGLE_SIM) {
loadSetting(
stmt,
SettingsGlobalPREFERRED_NETWORK_MODE,
MSimTelephonyManagergetTelephonyProperty(
"rotelephonydefault_network", 0,
IntegertoString(defaultNetworkType)));
} else {
loadSetting(stmt, SettingsGlobalPREFERRED_NETWORK_MODE, networkMode);
}
} else {
StringBuilder sb = new StringBuilder(defaultNetworkType);
for (int i = 0; i < numPhones - 1; i++) {
sbappend(",");
sbappend(RILConstantsNETWORK_MODE_GSM_ONLY);
}
loadSetting(stmt, SettingsGlobalPREFERRED_NETWORK_MODE, sbtoString());
由身份或持有的令牌确认享有的权限,登录过程实质上的目的也是为了确认权限。
Cookie是客户端给服务器用的,setCookie是服务器给客户端用的。cookie由服务器处理,客户端负责存储
客户端发送cookie:账户和密码
服务端收到后确认登录setCookie:sessionID=1,记下sessionID
客户端收到sessionID后记录,以后请求服务端带上对比记录下sessionID,说明已经登录
会话管理:登录状态,购物车
个性化:用户偏好,主题
Tracking:分析用户行为
XXS:跨脚本攻击,及使用JavaScript拿到浏览器的cookie之后,发送到自己的网站,以这种方式来盗用用户Cookie。Server在发送Cookie时,敏感的Cookie加上>
若是您使用的是vivo手机,手机不能使用4G网络的可以按照以下方法进行排查:
1、手机需使用与支持的4g网络所对应的运营商SIM卡;
2、查询使用的SIM卡是否开通了4g网络套餐;
3、确认当地是否覆盖SIM卡所属运营商的4g网络,还可更换网络环境观察看看;
4、查看手机是否启用4G网络模式,进入手机设置--移动网络/双卡与移动网络--网络模式中查看,部分机型需在拨号盘输入:##2288## 查看;
5、将数据网络关闭,等待几分钟后再重新打开观察;
6、进入设置--移动网络/双卡与移动网络--接入点(APN),选择“重置为默认设置”,然后关机重启试试;
7、将手机网络重置一下,先将网络设置为2G,待网络稳定后,再设置为4G,然后重启手机即可。
电脑连接局域网中的服务器
1、修改hosts,在hosts中新增一个域名。如:101251113apicleartokencom具体 *** 作:1、电脑中的hosts一般在C:\Windows2Fiddler如何让你的android模拟器连接上你电脑的网络第一步:在命令行(就是开始——运行——输入cmd)模式下输入adbshell命令一般会报两种错误,一是“adb不是内部命令
局域网,网络种类,覆盖范围一般是方圆几千米之内,其具备的安装便捷、成本节约、扩展方便等特点使其在各类办公室内运用广泛。局域网可以实现文件管理、应用软件共享、打印机共享等功能,在使用过程当中,通过维护局域网网络安全,能够有效地保护资料安全,保证局域网网络能够正常稳定的运行。
1 存储在SIM卡中的mcc/mnc
这个值是存储在SIM卡IMSI(国际移动用户识别码 International Mobile Subscriber Identification Number)中的固定值,不会被更改。有以下两种途径可以取得。
11 通过TelephonyManager获得
在TelephonyManager中有如下方法:
//TelephonyManagerjava
/
Returns the MCC+MNC (mobile country code + mobile network code) of the
provider of the SIM for a particular subscription 5 or 6 decimal digits
Availability: SIM state must be {@link #SIM_STATE_READY}
@see #getSimState
@param subId for which SimOperator is returned
@hide
/
public String getSimOperatorNumeric(int subId) {
int phoneId = SubscriptionManagergetPhoneId(subId);
return getSimOperatorNumericForPhone(phoneId);
}
/
Returns the MCC+MNC (mobile country code + mobile network code) of the
provider of the SIM for a particular subscription 5 or 6 decimal digits
@param phoneId for which SimOperator is returned
@hide
/
public String getSimOperatorNumericForPhone(int phoneId) {
return getTelephonyProperty(phoneId,
TelephonyPropertiesPROPERTY_ICC_OPERATOR_NUMERIC, "");
}
↓↓↓
由于subId并不固定,是根据放进sim卡槽时候的计数来统计的,但是如果相关类中有SubscriptionInfo对象的话,是可以直接取到的:
int subId = mSubscriptionInfogetSubscriptionId();
另一种phoneId则比较简单了,它与sim卡数量有关,单卡时为0,双卡时根据sim slot位置分别取0和1。
12 通过SubscriptionInfo获得
在有些特殊情况下,比如SIM卡处于PIN码LOCK状态时,11所提到的方法是取不到的,这个时候只能通过SubscriptionInfo来取。
// SubscriptionInfojava
/
@return the MCC
/
public int getMcc() {
return thismMcc;
}
/
@return the MNC
/
public int getMnc() {
return thismMnc;
}
注意,由于这个方法取到的mcc/mnc均为int值,比如中国联通的“46001”,则有mcc为“460”,mnc为“1”,与固定String字符串进行匹配比对的话,需要先将String拆分为两部分后分别强转成int型后才可进行比对。
2 SIM卡注册网络的mcc/mnc
非漫游情况下,注册网络的mcc/mnc就是SIM卡中存储的。但是如果你的SIM卡在其他国家并没有该运营商的基站,只能通过漫游到其他运营商的网络上维持服务时,注册网络的mcc/mnc对应的就是该运营商的值,与SIM卡无关了。
21 通过ServiceState获得
熟悉Android Telephony流程的朋友应该都知道,CS、PS域的注册状态,漫游状态,运营商名字的显示,网络模式等都是用模板类ServiceStatejava来保存的。
SystemUI中有不少类都注册了PhoneStateListener这个callback,用来时刻关注设备的一些telephony相关状态,当网络服务状态有变化时,会回调其onServiceStateChanged(ServiceState serviceState)方法,这样我们就可以直接从ServiceState里面取了。
// ServiceStatejava
/
Get current registered operator numeric id
In GSM/UMTS, numeric format is 3 digit country code plus 2 or 3 digit
network code
@return numeric format of operator, null if unregistered or unknown
/
/
The country code can be decoded using
{@link comandroidinternaltelephonyMccTable#countryCodeForMcc(int)}
/
public String getOperatorNumeric() {
return mVoiceOperatorNumeric;
}
/
Get current registered voice network operator numeric id
@return numeric format of operator, null if unregistered or unknown
@hide
/
public String getVoiceOperatorNumeric() {
return mVoiceOperatorNumeric;
}
/
Get current registered data network operator numeric id
@return numeric format of operator, null if unregistered or unknown
@hide
/
public String getDataOperatorNumeric() {
return mDataOperatorNumeric;
}
一般来说,voice语音业务和data数据业务对应的OperatorNumeric是一样的,所以getOperatorNumeric()默认取了voice的。
22 通过监听Telephony广播获得
由于该Intent action为MTK新增的,故以下方法介绍均以MTK源码为基础。
上面的方法必须在voice与data均注册成功的前提下才能获得,但是在一些很特殊的环境下,比如SIM卡虽然漫游上了某个其他运营商的网络,但由于两家运营商之间并没有协议,导致无法注册上服务,此时voice和data取得的OperatorNumeric均为空的。
在MTK源码中,MtkServiceStateTracker在处理PLMN String即mcc/mnc时,会通过action为“TelephonyIntentsACTION_LOCATED_PLMN_CHANGED”的广播,把它作为extra参数传递出去。
// MtkServiceStateTrackerjava
private void updateLocatedPlmn(String plmn) {
if (((mLocatedPlmn == null) && (plmn != null)) ||
((mLocatedPlmn != null) && (plmn == null)) ||
((mLocatedPlmn != null) && (plmn != null) && !(mLocatedPlmnequals(plmn)))) {
log("updateLocatedPlmn(),previous plmn= " + mLocatedPlmn + " ,update to: " + plmn);
Intent intent = new Intent(TelephonyIntentsACTION_LOCATED_PLMN_CHANGED);
if (TelephonyManagergetDefault()getPhoneCount() == 1) {
intentaddFlags(IntentFLAG_RECEIVER_REPLACE_PENDING);
}
intentputExtra(TelephonyIntentsEXTRA_PLMN, plmn);
mPhonegetContext()sendStickyBroadcastAsUser(intent, UserHandleALL);
}
mLocatedPlmn = plmn;
}
由此可知,只要在需要取的类中,注册一个监听“ACTION_LOCATED_PLMN_CHANGED”的BroadcastReceiver就行了,在设备开机之后便可以第一时间拿到漫游网络的mcc/mnc值,具体如下:
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intentgetAction();
if (actionequals(TelephonyIntentsACTION_LOCATED_PLMN_CHANGED)) {
mLocatedPlmn = intentgetStringExtra(TelephonyIntentsEXTRA_PLMN);
// mLocatedPlmn即为漫游网络的mcc/mnc值,接下来用它 *** 作即可
以上就是关于如何通过修改build.prop文件来修改Android 首选网络模式默认值全部的内容,包括:如何通过修改build.prop文件来修改Android 首选网络模式默认值、android wifi正在连接的状态广播、Android网络请求知识(三)授权,TCP/IP,HTTPS建立过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)