1. 广播监听
IntentFilter mIntentFilter = new IntentFilter();
mIntentFilter.addAction(IntentHelper.ECARX_ACTION_TBOX_SIGNAL_CHANGED);
mIntentFilter.addAction(IntentHelper.ECARX_ACTION_TBOX_CONNECTION_STATE);
Intent intent = mContext.registerReceiver(this, mIntentFilter);
2. 广播处理
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
Log.v(TAG, "updateSignalByIntent-action:[" + action + "]");
if (IntentHelper.ECARX_ACTION_TBOX_SIGNAL_CHANGED.equals(action)) {
int csq = intent.getIntExtra(IntentHelper.ECARX_EXTRA_TBOX_SIGNAL_CSQ, 0);
if (csq == 0 || csq < TBoxManager.CSQ_SIGNAL_MIN || csq == TBoxManager.CSQ_SIGNAL_NONE || csq == TBoxManager.UNKNOWN_VALUE) {
csq = 0;
} else {
int level = getLevelFromCSQ(csq);
if (level < 0) {
level = 0;
}
if (level > 4) {
level = 4;
}
}
//这里的level就是信号强度(0~4)
} else if (IntentHelper.ECARX_ACTION_TBOX_CONNECTION_STATE.equals(action)) { boolean connect = intent.getBooleanExtra(TBoxManager.EXTRA_TBOX_CONNECTION_STATE, false); if (!connect) { setPhoneSignalIconId(R.drawable.ecarx_ic_signal_no_signal); Log.i(TAG, "setPhoneSignalIconId to ecarx_ic_signal_no_signal tbox disconnected"); } }
}