Android开发麦克风静音获取ICCID,CSQ值
- 麦克风静音
- 获取ICCID
- CSQ值
麦克风静音
麦克风静音开关很简单,拿到AudioManager,直接设置即可,不过需要一个权限。
AudioManager audioManager = (AudioManager) mRuntime.getContextProxy()
.context.getSystemService(Context.AUDIO_SERVICE);
if (audioManager != null) {
audioManager.setMicrophoneMute("1".equals(value));
}
权限
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
获取ICCID
获取ICCID,就是获取sim卡的唯一标识ID,也就是说,你要插卡才行。
TelephonyManager tm = (TelephonyManager) mRuntime
.getContextProxy().context.getSystemService(Context.TELEPHONY_SERVICE);
mRuntime.setIccid(tm.getSimSerialNumber());
检查是否有sim卡
private boolean querySimCardState() {
if (mTelephony == null) {
return false;
}
int simState = mTelephony.getSimState();
if (simState == mOldSimCardState && simState == TelephonyManager.SIM_STATE_READY) {
return true;
}
boolean flag = false;
mOldSimCardState = simState;
switch (simState) {
case TelephonyManager.SIM_STATE_READY:
//sim卡准备好了
//log.d("sim卡准备好了.");
flag = true;
break;
case TelephonyManager.SIM_STATE_NETWORK_LOCKED:
case TelephonyManager.SIM_STATE_PUK_REQUIRED:
case TelephonyManager.SIM_STATE_PIN_REQUIRED:
//sim卡网络查找中
//log.d("sim卡状态正在寻找网络.");
break;
default:
//sim卡没有/准备好
//log.d("sim卡没有,或者未准备好.");
break;
}
return flag;
}
CSQ值
CSQ=(dBm+113)/2
由上,先要获取到dBm的值,也就是信号强度。
TelephonyManager tm = (TelephonyManager) mRuntime
.getContextProxy().context.getSystemService(Context.TELEPHONY_SERVICE);
List<CellInfo> cellInfoList = tm.getAllCellInfo();
//CSQ值=(接收信号强度dBm+113)/2。
int dbm = 0;
if (cellInfoList != null && cellInfoList.size() != 0) {
for (CellInfo cellInfo : cellInfoList) {
if (cellInfo instanceof CellInfoLte) {
dbm = ((CellInfoLte) cellInfo).getCellSignalStrength().getDbm();
} else if (cellInfo instanceof CellInfoCdma) {
dbm = ((CellInfoCdma) cellInfo).getCellSignalStrength().getDbm();
} else if (cellInfo instanceof CellInfoGsm) {
dbm = ((CellInfoGsm) cellInfo).getCellSignalStrength().getDbm();
} else if (cellInfo instanceof CellInfoWcdma) {
dbm = ((CellInfoWcdma) cellInfo).getCellSignalStrength().getDbm();
}
}
}
log.d("dbm is==> " + dbm);
int csq = (dbm + 113) / 2;
log.d("csq==> " + csq);