wjc
2025-05-07 8814f3f0828e6ac652a29cc9de9f971fd55bca5b
app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
@@ -5,9 +5,9 @@
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -17,6 +17,7 @@
import android.os.SystemClock;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
@@ -32,9 +33,12 @@
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityMyPowerStationBinding;
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
import com.hdl.photovoltaic.enums.LowerTagType;
import com.hdl.photovoltaic.enums.NetworkType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlDeviceLogic;
import com.hdl.photovoltaic.other.HdlESLocalJsonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlMessageLogic;
import com.hdl.photovoltaic.other.HdlMqttLogic;
@@ -48,11 +52,13 @@
import com.hdl.photovoltaic.ui.home.HomePageFragment;
import com.hdl.photovoltaic.ui.me.MeFragment;
import com.hdl.photovoltaic.ui.message.MessageFragment;
import com.hdl.photovoltaic.ui.powerstation.HouseListFragment;
import com.hdl.photovoltaic.ui.powerstation.HouseAndDeviceFragment;
import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.utils.AppManagerUtils;
import com.hdl.photovoltaic.utils.FragmentUtils;
import com.hdl.photovoltaic.utils.GPSManagerUtils;
import com.hdl.photovoltaic.utils.PermissionUtils;
import com.hdl.photovoltaic.utils.SharedPreUtils;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.ConfirmationTipDialog;
import com.hdl.sdk.link.HDLLinkLocalSdk;
@@ -64,8 +70,8 @@
import com.hdl.sdk.link.core.config.HDLLinkConfig;
import com.hdl.sdk.link.core.connect.HDLUdpConnect;
import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -99,10 +105,10 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
//        setNotificationBarBackgroundColor(CustomColor.blue);
        setStatusBarTranslucent();
        getWindow().setNavigationBarColor(getColor(R.color.text_FF1C1C1E));
        //初始化碎片
        initFragment(savedInstanceState);
        initFragment(null);
        //初始化
        this.initView();
        //初始化界面监听器
@@ -119,6 +125,9 @@
        this.requestPermissions();
        //读取消息未读数量
        this.getUnreadCount();
        //获取云端脚本
        HdlESLocalJsonLogic.getInstance().getAllHdlESLocalJson();
    }
@@ -132,29 +141,44 @@
        mFragmentManager = getSupportFragmentManager();
        //碎片初始化
        HomePageFragment mHomePageFragment = new HomePageFragment();
        HouseListFragment mHouseListFragment = new HouseListFragment();
        HouseAndDeviceFragment mHouseAndDeviceFragment = new HouseAndDeviceFragment();
        MessageFragment mMessageFragment = new MessageFragment();
        MeFragment mMeFragment = new MeFragment();
        if (savedInstanceState != null) {
            //“内存重启”时调用 获取“内存重启”时保存的索引下标
            currentFragmentIndex = savedInstanceState.getInt(CURRENT_FRAGMENT, 0);
            if (fragmentList.size() != 0) {
            if (!fragmentList.isEmpty()) {
                fragmentList.clear();
            }
            fragmentList.add(mFragmentManager.findFragmentByTag(0 + ""));
            fragmentList.add(mFragmentManager.findFragmentByTag(1 + ""));
            fragmentList.add(mFragmentManager.findFragmentByTag(2 + ""));
            fragmentList.add(mFragmentManager.findFragmentByTag(3 + ""));
            restoreFragment();//恢复fragment页面
            this.restoreFragment();//恢复fragment页面
        } else {
            //
            this.removeAllFragments(mFragmentManager);
            //正常启动时调用
            if (!fragmentList.isEmpty()) {
                fragmentList.clear();
            }
            fragmentList.add(mHomePageFragment);
            fragmentList.add(mHouseListFragment);
            fragmentList.add(mHouseAndDeviceFragment);
            fragmentList.add(mMessageFragment);
            fragmentList.add(mMeFragment);
            showFragment();
            this.showFragment();
        }
//        if (!fragmentList.isEmpty()) {
//            fragmentList.clear();
//        }
//        // 正常启动时调用
//        fragmentList.add(mHomePageFragment);
//        fragmentList.add(mHouseAndDeviceFragment);
//        fragmentList.add(mMessageFragment);
//        fragmentList.add(mMeFragment);
//        FragmentUtils.loadMultipleFragment(R.id.module_fcv, mFragmentManager, fragmentList.toArray(new Fragment[0]));
    }
@@ -163,6 +187,7 @@
     * 显示fragment
     */
    private void showFragment() {
//        FragmentUtils.showHideFragment(mFragmentManager, fragmentList.toArray(new Fragment[0])[currentFragmentIndex]);
        FragmentTransaction ft = mFragmentManager.beginTransaction();
        //如果之前没有添加过
        if (!fragmentList.get(currentFragmentIndex).isAdded()) {
@@ -171,12 +196,10 @@
        } else {
            ft.hide(currentFragment).show(fragmentList.get(currentFragmentIndex));
        }
        //把当前显示的fragment记录下来
        currentFragment = fragmentList.get(currentFragmentIndex);
        ft.commit();
        //把当前显示的fragment记录下来
        currentFragment = fragmentList.get(currentFragmentIndex);
    }
    /**
@@ -192,6 +215,28 @@
            }
        }
        ft.commit();
    }
    private void removeAllFragments(FragmentManager manager) {
        if (manager == null) return;
        try {
            final List<Fragment> fragments = manager.getFragments();
            if (fragments.isEmpty()) {
                return;
            }
            FragmentTransaction transaction = manager.beginTransaction();
            for (int i = 0; i < fragments.size(); i++) {
                Fragment fragment = fragments.get(i);
                if (fragment != null) {
//                     FragmentManager childManager = fragment.getChildFragmentManager();
//                    removeAllFragments(childManager);
                    transaction.remove(fragment);
                }
            }
            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -249,14 +294,14 @@
                                UserConfigManage.getInstance().Save();
                            }
                            HDLApp.getInstance().setInfoMap(registrationId_tag, "true");//记录一下状态,后台杀死app会清空;
                            HdlLogLogic.print("添加极光ID到云端--->registrationID:" + UserConfigManage.getInstance().getUserName() + "--->" + finalRegistrationID, true);
                            HdlLogLogic.print("添加极光ID到云端---registrationID:" + UserConfigManage.getInstance().getUserName() + "---" + finalRegistrationID, true);
                        }
                        @Override
                        public void onFailure(HDLException e) {
                            HDLApp.getInstance().setInfoMap(registrationId_tag, "false");//记录一下状态,后台杀死app会清空;
                            HdlLogLogic.print("添加极光ID到云端失败--->registrationID:" + UserConfigManage.getInstance().getUserName() + "--->" + finalRegistrationID, true);
                            HdlLogLogic.print("添加极光ID到云端失败---registrationID:" + UserConfigManage.getInstance().getUserName() + "---" + finalRegistrationID, true);
                        }
                    });
@@ -271,28 +316,37 @@
     * 开启通知权限
     */
    private void notificationSet() {
        boolean isBoolean = PermissionUtils.isNotificationEnabled(_mActivity);
        if (!isBoolean) {
            ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity);
            confirmationCancelDialog.setTitle(getString(R.string.loading_title_tip));
            confirmationCancelDialog.setContent(getString(R.string.no_permissions_unable_to_receive_push));
            confirmationCancelDialog.setConfirmation(getString(R.string.go_to_settings));
            confirmationCancelDialog.show();
            confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
                @Override
                public void Confirm() {
                    confirmationCancelDialog.dismiss();
                    PermissionUtils.openNotificationSettings(_mActivity);
        String key = "isOpenNotificationEnabled";
        boolean isCancel = SharedPreUtils.getBoolean(key);
        if (!isCancel) {
            boolean isBoolean = PermissionUtils.isNotificationEnabled(_mActivity);
            if (!isBoolean) {
                ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity);
                confirmationCancelDialog.setTitle(getString(R.string.loading_title_tip));
                confirmationCancelDialog.setContent(getString(R.string.no_permissions_unable_to_receive_push));
                confirmationCancelDialog.setConfirmation(getString(R.string.go_to_settings));
                confirmationCancelDialog.show();
                confirmationCancelDialog.isHideTitle(true);
                confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
                    @Override
                    public void Confirm() {
                        SharedPreUtils.putBoolean(key, true);
                        confirmationCancelDialog.dismiss();
                        PermissionUtils.openNotificationSettings(_mActivity);
                }
            });
            confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
                @Override
                public void Cancel() {
                    confirmationCancelDialog.dismiss();
                }
            });
                    }
                });
                confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
                    @Override
                    public void Cancel() {
                        SharedPreUtils.putBoolean(key, true);
                        confirmationCancelDialog.dismiss();
                    }
                });
            } else {
                SharedPreUtils.putBoolean(key, true);
            }
        }
    }
@@ -307,7 +361,8 @@
                currentFragmentIndex = 0;
                bottomViewChangeOfStyle();
                showFragment();
                postEventBus(HomepageTitleTabSwitch.homepage);
                HdlCommonLogic.lowerTagType = LowerTagType.home;
                HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, HomepageTitleTabSwitch.homepage.toString());
            }
        });
        viewBinding.myPowerStationBottomIl1.clickTv.setOnClickListener(new View.OnClickListener() {
@@ -319,7 +374,8 @@
                currentFragmentIndex = 1;
                bottomViewChangeOfStyle();
                showFragment();
                postEventBus(HomepageTitleTabSwitch.powerstation);
                HdlCommonLogic.lowerTagType = LowerTagType.power_station;
                HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, HomepageTitleTabSwitch.powerstation.toString());
            }
        });
        viewBinding.myMessageBottomIl2.clickTv.setOnClickListener(new View.OnClickListener() {
@@ -331,7 +387,8 @@
                currentFragmentIndex = 2;
                bottomViewChangeOfStyle();
                showFragment();
                postEventBus(HomepageTitleTabSwitch.message);
                HdlCommonLogic.lowerTagType = LowerTagType.message;
                HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, HomepageTitleTabSwitch.message.toString());
            }
        });
        viewBinding.myMeBottomIl3.clickTv.setOnClickListener(new View.OnClickListener() {
@@ -343,7 +400,8 @@
                currentFragmentIndex = 3;
                bottomViewChangeOfStyle();
                showFragment();
                postEventBus(HomepageTitleTabSwitch.me);
                HdlCommonLogic.lowerTagType = LowerTagType.me;
                HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, HomepageTitleTabSwitch.me.toString());
            }
        });
@@ -357,83 +415,77 @@
        HdlUniLogic.getInstance().checkRemoveOtherUniMPEventCallBack();
        //移除监听
        HDLLinkLocalSdk.getInstance().removeAllTopicsListener(allTopicsListener);
    }
    private void initView() {
        viewBinding.myPowerStationBottomIl0.titleTv.setText(R.string.power_shome_page);
        viewBinding.myPowerStationBottomIl0.titleTv.setText(R.string.power_home_page);
        viewBinding.myPowerStationBottomIl1.titleTv.setText(R.string.power_station);
        viewBinding.myMessageBottomIl2.titleTv.setText(R.string.message);
        viewBinding.myMeBottomIl3.titleTv.setText(R.string.power_station_me);
        this.bottomViewChangeOfStyle();
    }
    /**
     * 底部模块样式改变
     */
    private void bottomViewChangeOfStyle() {
        if (this.currentFragmentIndex == 0) {
            //首页界面
            //概览界面
            viewBinding.myPowerStationBottomIl0.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.home_page_selected));
            viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_E6000000));
            viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_FFACACAC));
            viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.power_station_unselected));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
            viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_unselected));
            viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
            viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.me_unselected));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
        } else if (this.currentFragmentIndex == 1) {
            //电站界面
            viewBinding.myPowerStationBottomIl0.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.home_page_unselected));
            viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
            viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.power_station_selected));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_E6000000));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_FFACACAC));
            viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_unselected));
            viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
            viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.me_unselected));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
        } else if (this.currentFragmentIndex == 2) {
            //消息界面
            viewBinding.myPowerStationBottomIl0.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.home_page_unselected));
            viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
            viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.power_station_unselected));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_select));
            viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_E6000000));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
            viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_selected));
            viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_FFACACAC));
            viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.me_unselected));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
        } else if (this.currentFragmentIndex == 3) {
            //我的界面
            viewBinding.myPowerStationBottomIl0.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.home_page_unselected));
            viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myPowerStationBottomIl0.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
            viewBinding.myPowerStationBottomIl1.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.power_station_unselected));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myPowerStationBottomIl1.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
            viewBinding.myMessageBottomIl2.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.message_unselected));
            viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_65000000));
            viewBinding.myMessageBottomIl2.titleTv.setTextColor(getColor(R.color.text_FF5B5B5B));
            viewBinding.myMeBottomIl3.iconIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.me_selected));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_E6000000));
            viewBinding.myMeBottomIl3.titleTv.setTextColor(getColor(R.color.text_FFACACAC));
        }
    }
    /**
     * 发布点击事件
     *
     * @param tabSwitch -
     */
    private void postEventBus(HomepageTitleTabSwitch tabSwitch) {
        BaseEventBus baseEventBus = new BaseEventBus();
        baseEventBus.setTopic(ConstantManage.homepage_title_tab_switch);
        baseEventBus.setType(tabSwitch.toString());
        EventBus.getDefault().postSticky(baseEventBus);
    }
    public void requestPermissions() {
        //消息通知限权
        this.notificationSet();
        //ACCESS_FINE_LOCATION   允许使用GPS定位
        //ACCESS_COARSE_LOCATION   允许使用WIFI热点或基站来获取粗略的定位
        String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION});
        if (ary.length > 0) {
            this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
        } else {
            locationUpdates();
        }
//        String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION});
//        if (ary.length > 0) {
//            this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
//        } else {
//            locationUpdates();
//        }
    }
    @Override
@@ -465,6 +517,7 @@
            @Override
            public void onMessage(Object msg) {
                if (msg == null) {
                    return;
                }
@@ -473,7 +526,7 @@
                    if (response.getTopic() == null) {
                        return;
                    }
                    HdlLogLogic.print("监听到Modbus数据--->" + new Gson().toJson(response), false);
                    HdlLogLogic.print("监听到Modbus数据---" + new Gson().toJson(response), false);
//                    if (response.getTopic().endsWith("custom/native/inverter/up")) {
                    HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                    uniCallBackBaseBean.setType(response.getTopic());
@@ -503,7 +556,7 @@
                    } else if (linkResponse.getTopic().endsWith("/custom/device/list/upload")) {
                        //逆变器有新oid通知主题
                        if (linkResponse.getData() == null) {
                            HdlLogLogic.print("逆变器有新oid通知--->数据为空", false);
                            HdlLogLogic.print("逆变器有新oid通知---数据为空", false);
                            return;
                        }
                        try {
@@ -525,6 +578,40 @@
                        uniCallBackBaseBean.setData(linkResponse.getData());
                        HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                        HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true);
                    } else if (linkResponse.getTopic().endsWith("/app/thing/event/appHomeRemoveRefresh/up")) {
                        String[] topicArray = linkResponse.getTopic().split("/");
                        //住宅删除通知
                        HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                        uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_home_remove_refresh);
                        uniCallBackBaseBean.setData(topicArray[1]);
                        HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                        HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true);
                    } else if (linkResponse.getTopic().endsWith("/app/thing/event/appHomeDebugRefresh/up")) {
                        String[] topicArray = linkResponse.getTopic().split("/");
                        //住宅二次调试(授权状态)刷新通知
                        HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                        uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_home_debug_refresh);
                        uniCallBackBaseBean.setData(topicArray[1]);
                        HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                        HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true);
                    } else if (linkResponse.getTopic().endsWith("/app/thing/event/appHomeDeliverRefresh/up")) {
                        String[] topicArray = linkResponse.getTopic().split("/");
                        //住宅交付状态变更刷新通知
                        HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                        uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_home_delivery_refresh);
                        uniCallBackBaseBean.setData(topicArray[1]);
                        HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                        HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true);
                    } else if (linkResponse.getTopic().endsWith("/app/thing/property/send")) {
                        //设备状态变更topic:/user/${homeId}/app/thing/property/send
                        if (linkResponse.getData() == null) {
                            HdlLogLogic.print("设备状态变更--->数据为空", false);
                            return;
                        }
                        HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                        uniCallBackBaseBean.setType(linkResponse.getTopic());
                        uniCallBackBaseBean.setData(linkResponse.getData());
                        HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                    }
                }
            }
@@ -547,12 +634,13 @@
                    if (info != null) {
                        MqttRecvClient.getInstance().setConnectParam(info.getUrl(), info.getClientId(), info.getUserName(), info.getPassWord());
                        MqttRecvClient.getInstance().connect();
                        HdlLogLogic.print("mqtt链接成功---ClientId---" + info.getClientId(), true);
                    }
                }
                @Override
                public void onFailure(HDLException e) {
                    HdlLogLogic.print("读取mqtt远程信息失败--->" + e.getMessage(), e.getCode(), true);
                    HdlLogLogic.print("读取mqtt远程信息失败---" + e.getMessage(), e.getCode(), true);
                }
            });
        }
@@ -575,7 +663,7 @@
                return;
            }
            int index = -1;
            List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId());
            List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId(), null);
            for (int i = 0; i < list.size(); i++) {
                GatewayBean gatewayBean = list.get(i);
                if (gatewayBean.getGatewayId().equals(topics[2])) {
@@ -636,6 +724,13 @@
                        });
                    }
                });
            }
        } else if (event.getTopic().contains(ConstantManage.homepage_title_tab_switch)) {
            if (event.getType().contains(ConstantManage.station_page)) {
                //从首页指定电站状态打开电站界面
                currentFragmentIndex = 1;
                bottomViewChangeOfStyle();
                showFragment();
            }
        }
    }
@@ -729,7 +824,10 @@
                return;
            } else {
                AppManagerUtils.getAppManager().finishAllActivity();
                //如果开发者调用kill或者exit之类的方法杀死进程,或者双击back键会杀死进程,请务必在此之前调用MobclickAgent.onKillProcess方法,用来保存统计数据。
                MobclickAgent.onKillProcess(_mActivity);
                Process.killProcess(Process.myPid());
            }
        }
        super.onBackPressed();
@@ -747,10 +845,10 @@
        if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
            // 提示用户打开定位功能或者引导用户去系统设置页面打开定位功能
            ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity);
            confirmationCancelDialog.setTitle(getString(R.string.loading_title_tip));
            confirmationCancelDialog.setContent(getString(R.string.system_positioning_switch));
            confirmationCancelDialog.setConfirmation(getString(R.string.go_to_settings));
            confirmationCancelDialog.show();
            confirmationCancelDialog.isHideTitle(true);
            confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
                @Override
                public void Confirm() {
@@ -782,6 +880,7 @@
            dialog.setTitle(getString(R.string.loading_title_tip));
            dialog.setContent(getString(R.string.port_conflict));
            dialog.setConfirmation(getString(R.string.home_login_affirm));
            dialog.isHideTitle(true);
            dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
                @Override
                public void Confirm() {