针对双卡设备,需要区分subscription,确定运营商信息、网络状态等等与卡相关的功能操作。
LOG工具代码
import com.android.telephony.Rlog;
public class NetworkOperatorList {
static final String LOG_TAG = "NetworkOperatorList";
protected final void logd(String s, int phoneId) {
Rlog.d(LOG_TAG, "[" + phoneId + "] " + s);
}
private void handleReceiveForPhone(Context context, Intent intent, int phoneId) {
logd("handleReceiveForPhone for phone ", phoneId);
}
}
Note:为什么直接用logd会提示优化?源码也是 log没有d。
说明 :typo 意为错字,其实都会提示的,包括源码的logv
参考
参考ServiceStateTracker,打印双卡信息,但基于全局变量mPhone实现的 ,源码如下:
//frameworks/opt/telephony/src/java/com/android/internal/telephony/ServiceStateTracker.java
package com.android.internal.telephony;
import com.android.telephony.Rlog;
/**
* {@hide}
*/
public class ServiceStateTracker extends Handler {
static final String LOG_TAG = "SST";
//Common
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
protected final GsmCdmaPhone mPhone;
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
protected final void log(String s) {
Rlog.d(LOG_TAG, "[" + mPhone.getPhoneId() + "] " + s);
}
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
protected final void loge(String s) {
Rlog.e(LOG_TAG, "[" + mPhone.getPhoneId() + "] " + s);
}
}