SignalStrengthPresenter.java 文件源码

java
阅读 24 收藏 0 点赞 0 评论 0

项目:microbit 作者:
private void updateSignalStrength(SignalStrength signalStrength) {
    final int level;
    Log.i(TAG, "updateSignalStrength: ");
    if(!isCdma(signalStrength)) {
        int asu = signalStrength.getGsmSignalStrength();
        // ASU ranges from 0 to 31 - TS 27.007 Sec 8.5
        // asu = 0 (-113dB or less) is very weak
        // signal, its better to show 0 bars to the user in such cases.
        // asu = 99 is a special case, where the signal strength is unknown.
        if(asu <= 2 || asu == 99) level = EventSubCodes.SAMSUNG_SIGNAL_STRENGTH_EVT_NO_BAR;
        else if(asu >= 12) level = EventSubCodes.SAMSUNG_SIGNAL_STRENGTH_EVT_FOUR_BAR;
        else if(asu >= 8) level = EventSubCodes.SAMSUNG_SIGNAL_STRENGTH_EVT_THREE_BAR;
        else if(asu >= 5) level = EventSubCodes.SAMSUNG_SIGNAL_STRENGTH_EVT_TWO_BAR;
        else level = EventSubCodes.SAMSUNG_SIGNAL_STRENGTH_EVT_ONE_BAR;
    } else {
        level = getCdmaLevel(signalStrength);
    }

    if(level != sCurrentSignalStrength) {
        sCurrentSignalStrength = level;

        MBApp application = MBApp.getApp();

        Intent intent = new Intent(application, IPCService.class);
        intent.putExtra(IPCConstants.INTENT_TYPE, EventCategories.IPC_BLE_NOTIFICATION_CHARACTERISTIC_CHANGED);
        intent.putExtra(IPCConstants.INTENT_CHARACTERISTIC_MESSAGE, Utils.makeMicroBitValue
                (EventCategories.SAMSUNG_SIGNAL_STRENGTH_ID, level));
        application.startService(intent);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号