app/build.gradle
@@ -166,6 +166,9 @@ //分析和用户标签等功能(可选,集成极光分析SDK后,即可支持行为触发推送消息、推送转化率统计,用户行为分) implementation 'cn.jiguang.sdk:joperate:2.0.2' //PickerView implementation 'com.contrarywind:Android-PickerView:4.1.9' // //若不集成厂商通道,可直接跳过以下依赖 // // 极光厂商插件版本与接入 JPush 版本保持一致,下同 app/src/main/AndroidManifest.xml
@@ -10,7 +10,6 @@ <!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> --> <!-- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> --> <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> --> <!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> --> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> --> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <!-- wifi状态权限 --> @@ -21,14 +20,12 @@ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- android 10.0使用wifi api新添加的权限 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- bugly所需权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> --> <uses-permission android:name="android.permission.CAMERA" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> --> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- bugly所需权限 --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- bugly所需权限 start --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> --> <!-- UNI相机和存储的权限 --> <uses-feature android:name="android.hardware.camera" /> @@ -67,7 +64,9 @@ <uses-permission android:name="android.permission.VIBRATE" /><!--振动器权限,JPUSH支持通知开启振动功能,小米推送必须--> <!-- 扩展备用权限(可选)--> <permission android:name="${applicationId}.permission.JOPERATE_MESSAGE" android:protectionLevel="signature"/> <permission android:name="${applicationId}.permission.JOPERATE_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="${applicationId}.permission.JOPERATE_MESSAGE" /> app/src/main/assets/locationCN.json
New file Diff too large app/src/main/assets/locationEN.json
New file Diff too large app/src/main/assets/longLatCN.json
New file Diff too large app/src/main/assets/longLatEN.json
New file Diff too large app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -14,6 +14,8 @@ import com.hdl.photovoltaic.config.ConstantManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.enums.NetworkType; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.HomeLoginActivity; import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; import com.hdl.photovoltaic.utils.AppManagerUtils; @@ -34,6 +36,7 @@ import cn.jpush.android.api.JPushInterface; import io.dcloud.common.util.RuningAcitvityUtil; import io.dcloud.common.util.net.NetWork; import okhttp3.logging.HttpLoggingInterceptor; public class HDLApp extends Application { @@ -97,6 +100,10 @@ return ""; } public void removeKey(String key) { mInfoMap.remove(key); } /** * 初始化三方相关SDK */ @@ -114,14 +121,14 @@ // CrashReport.initCrashReport(this, Constant.BUGLY_APP_ID, true); //6.初始化DCUniMPSDK initDCUniMPSDK(); // this.initUniMqtt();//如果是部署到/手机上正式使用,注释掉这行代码就可 // //7.初始化自定义IconToast // ToastUtils.getInstance().initIconToast(this); // //8.对fastjson进行设置,解决fastjosn转换成字符串时首字母大小写问题 // TypeUtils.compatibleWithFieldName = true; // //9.初始化网络工具 // NetWorkUtil.init(this); // //10.初始化极光推送 //初始化极光推送 initJPush(); initHDLLinkPMSdk(); HDLLinkLocalSdk.getInstance().init(getInstance()); @@ -130,6 +137,9 @@ setOKHttpLogOpen(isLogEnabled); //监听网络状态变化 this.networkMonitoring(); //初始化本地assets文件夹资源文件 this.initLocalAssetsData(); } @@ -245,18 +255,41 @@ } // /** // * 初始化uni app mqtt // */ // private void initUniMqtt() { // try { // Through.getInstance().setUni(false); // //IP 地址要根据实际的更改 // UniAppMqtt.getInstance().initMqtt(this, "tcp://192.168.3.124:1883", "Android_" + android.os.Build.BRAND + "_" + this.hashCode(), new String[]{"PCToAndroid/#"}); // } catch (Exception e) { // LogUtils.e("测试Mqtt连接服务端失败"); // } // } /** * 读取加载本地配置文件数据 */ private void initLocalAssetsData() { //数据多有点卡,所以加了线程 HdlThreadLogic.runSubThread(new Runnable() { @Override public void run() { //获取国家省市数据 LocalManageUtil.getLocationInfo(getInstance()); //获取经纬度 LocalManageUtil.getLongLatInfo(getInstance()); } }); } /** * 初始化uni app mqtt */ private void initUniMqtt() { try { String ip = NetworkUtils.getIPAddress(this); if (TextUtils.isEmpty(ip)) { return; } //IP 地址要根据实际的更改 com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().initMqtt(this, "tcp://" + ip + ":1883", "Android_" + android.os.Build.BRAND + "_" + this.hashCode(), new String[]{"PCToAndroid/#"}); com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().setUni(true); } catch (Exception e) { HdlLogLogic.print("测试Mqtt连接服务端失败--->"); } } } app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
@@ -1,8 +1,11 @@ package com.hdl.photovoltaic.other; import android.content.Context; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; import android.text.TextUtils; import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.config.UserConfigManage; @@ -15,6 +18,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Objects; @@ -434,6 +438,34 @@ } /** * 打开资源文件 * * @param fileName 文件名 * @param context 上下文 * @return 返回json字符串 */ public String openAssetsFileJson(String fileName, Context context) { if (TextUtils.isEmpty(fileName)) { return ""; } //将json数据变成字符串 StringBuilder stringBuilder = new StringBuilder(); try { //获取assets资源管理器 AssetManager assetManager = context.getAssets(); //通过管理器打开文件并读取 BufferedReader bf = new BufferedReader(new InputStreamReader(assetManager.open(fileName))); String line; while ((line = bf.readLine()) != null) { stringBuilder.append(line); } } catch (IOException e) { e.printStackTrace(); } return stringBuilder.toString(); } /** * 判断路径是否合法 * * @param path 路径 app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -659,7 +659,7 @@ JsonObject json = new JsonObject(); json.addProperty("deviceName", Build.MODEL);//设备名称 json.addProperty("deviceType", "Android");//设备类型 json.addProperty("produce", AppConfigManage.isIsOnlineServer());//是否是生成版本 json.addProperty("produce", AppConfigManage.isIsOnlineServer());//表示是否是正式服务器 json.addProperty("pushToken", UserConfigManage.getInstance().getRegistrationID());//App的推送Token,在极光为RegId json.addProperty("software", "PHOTOVOLTAIC");//软件来源 app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
@@ -17,6 +17,7 @@ import com.google.gson.reflect.TypeToken; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.home.type.HomeType; import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.bean.MqttInfo; @@ -68,11 +69,7 @@ private ActivityMyPowerStationBinding viewBinding; private int currentFragmentIndex = 1; private EventListener allTopicsListener; private int backPressTimes; private NetworkChangeReceiver networkChangeReceiver; @Override public Object getContentView() { @@ -91,8 +88,7 @@ this.registerAllTopicsListener(); //初始化mqtt客户端 this.initMqttClient(); //上传极光注册ID //上传极光注册ID到云端 this.pushTokens(); //点击极光通知栏消息进来 this.clickJpushNotificationMessage(); @@ -104,9 +100,15 @@ /** * 上传极光注册ID * 上传极光注册ID到云端 */ private void pushTokens() { String is_registrationID = HDLApp.getInstance().getKey("registrationID"); if (is_registrationID.equals("true")) { //上过就没有必要在上传啦 return; } HdlThreadLogic.runSubThread(new Runnable() { @Override public void run() { @@ -133,6 +135,7 @@ UserConfigManage.getInstance().setPushId(pushId); UserConfigManage.getInstance().Save(); } HDLApp.getInstance().setInfoMap("registrationID", "true");//记录一下状态,后台杀死app会清空; HdlLogLogic.print("添加极光ID到云端--->registrationID:" + finalRegistrationID, true); } @@ -157,9 +160,9 @@ boolean isBoolean = PermissionUtils.isNotificationEnabled(_mActivity); if (!isBoolean) { ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity); confirmationCancelDialog.setTitle("提示"); confirmationCancelDialog.setContent("通知权限没开启,将无法收到推送信息."); confirmationCancelDialog.setConfirmation("前往设置"); 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 @@ -179,15 +182,6 @@ } } /** * 监听网络状态变化 */ private void networkMonitoring() { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); networkChangeReceiver = new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver, intentFilter); } private void initEvent() { viewBinding.myPowerStationBottomIl1.clickTv.setOnClickListener(new View.OnClickListener() { @@ -225,9 +219,6 @@ HdlUniLogic.getInstance().checkRemoveOtherUniMPEventCallBack(); //移除监听 HDLLinkLocalSdk.getInstance().removeAllTopicsListener(allTopicsListener); //移除监听网络状态变化 unregisterReceiver(networkChangeReceiver); } private void initView() { @@ -383,12 +374,8 @@ } } } } ; HDLLinkLocalSdk.getInstance(). registerAllTopicsListener(allTopicsListener); }; HDLLinkLocalSdk.getInstance().registerAllTopicsListener(allTopicsListener); } /** app/src/main/java/com/hdl/photovoltaic/ui/bean/CityBean.java
New file @@ -0,0 +1,37 @@ package com.hdl.photovoltaic.ui.bean; import com.contrarywind.interfaces.IPickerViewData; import java.io.Serializable; /** * Created by Zoro * Created on 2021/12/16 * description: */ public class CityBean implements Serializable, IPickerViewData { private String label; private String value; public String getLabel() { return label == null ? "" : label; } public void setLabel(String label) { this.label = label; } public String getValue() { return value == null ? "" : value; } public void setValue(String value) { this.value = value; } @Override public String getPickerViewText() { return label; } } app/src/main/java/com/hdl/photovoltaic/ui/bean/LongLatInfo.java
New file @@ -0,0 +1,75 @@ package com.hdl.photovoltaic.ui.bean; import androidx.annotation.NonNull; import java.io.Serializable; /** * Created by Zoro * Created on 2023/5/5 * description: */ public class LongLatInfo implements Serializable { // 城市名 private String City; //国家 private String Country; //经度 private String Longitude; //纬度 private String Latitude; //时区 private String Timezone; public LongLatInfo() { } public LongLatInfo(String city, String country, String longitude, String latitude, String timezone) { City = city; Country = country; Longitude = longitude; Latitude = latitude; Timezone = timezone; } public String getCity() { return City == null ? "" : City; } public void setCity(@NonNull String city) { City = city; } public String getCountry() { return Country == null ? "" : Country; } public void setCountry(@NonNull String country) { Country = country; } public String getLongitude() { return Longitude == null ? "" : Longitude; } public void setLongitude(@NonNull String longitude) { Longitude = longitude; } public String getLatitude() { return Latitude == null ? "" : Latitude; } public void setLatitude(@NonNull String latitude) { Latitude = latitude; } public String getTimezone() { return Timezone == null ? "" : Timezone; } public void setTimezone(@NonNull String timezone) { Timezone = timezone; } } app/src/main/java/com/hdl/photovoltaic/ui/bean/LongLatListInfo.java
New file @@ -0,0 +1,48 @@ package com.hdl.photovoltaic.ui.bean; import androidx.annotation.NonNull; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * Created by Zoro * Created on 2023/5/5 * description: */ public class LongLatListInfo implements Serializable { private String Country;//国家 private List<LongLatInfo> children = new ArrayList<>(); public LongLatListInfo() { } public LongLatListInfo(String country, List<LongLatInfo> children) { Country = country; this.children = children; } public LongLatListInfo(String country) { Country = country; } public String getCountry() { return Country == null ? "" : Country; } public void setCountry(@NonNull String country) { Country = country; } public List<LongLatInfo> getChildren() { if (children == null) { return children = new ArrayList<>(); } return children; } public void setChildren(@NonNull List<LongLatInfo> children) { this.children = children; } } app/src/main/java/com/hdl/photovoltaic/ui/bean/NationBean.java
New file @@ -0,0 +1,44 @@ package com.hdl.photovoltaic.ui.bean; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * Created by Zoro * Created on 2021/12/16 * description: */ public class NationBean implements Serializable { private String label; private String value; private List<ProvinceBean> children = new ArrayList<>(); public String getLabel() { return label == null ? "" : label; } public void setLabel(String label) { this.label = label; } public String getValue() { return value == null ? "" : value; } public void setValue(String value) { this.value = value; } public List<ProvinceBean> getChildren() { if (children == null) { return new ArrayList<>(); } return children; } public void setChildren(List<ProvinceBean> children) { this.children = children; } } app/src/main/java/com/hdl/photovoltaic/ui/bean/ProvinceBean.java
New file @@ -0,0 +1,45 @@ package com.hdl.photovoltaic.ui.bean; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * Created by Zoro * Created on 2021/12/16 * description: */ public class ProvinceBean implements Serializable { private String label; private String value; private List<CityBean> children = new ArrayList<>(); public String getLabel() { return label == null ? "" : label; } public void setLabel(String label) { this.label = label; } public String getValue() { return value == null ? "" : value; } public void setValue(String value) { this.value = value; } public List<CityBean> getChildren() { if (children == null) { return new ArrayList<>(); } return children; } public void setChildren(List<CityBean> children) { this.children = children; } } app/src/main/java/com/hdl/photovoltaic/ui/test/MqttCallBack.java
New file @@ -0,0 +1,8 @@ package com.hdl.photovoltaic.ui.test; /** * Created by hxb on 2022/1/18. */ public interface MqttCallBack { void onResult(Object data); } app/src/main/java/com/hdl/photovoltaic/ui/test/MqttDCUniMPJSCallback.java
New file @@ -0,0 +1,28 @@ package com.hdl.photovoltaic.ui.test; import io.dcloud.feature.unimp.DCUniMPJSCallback; /** * 为了方便和小程序用一样的接口,特意封装,方面调试及前端统一一套代码 * Created by hxb on 2022/1/18. */ public class MqttDCUniMPJSCallback extends DCUniMPJSCallback { public MqttDCUniMPJSCallback(){ super("a","b","c"); } public void setMqttCallBack(MqttCallBack mqttCallBack){ this.mqttCallBack=mqttCallBack; } MqttCallBack mqttCallBack; @Override public void invoke(Object o) { if (null != mqttCallBack) { mqttCallBack.onResult(o); } } } app/src/main/java/com/hdl/photovoltaic/ui/test/UniAppMqtt.java
New file @@ -0,0 +1,276 @@ package com.hdl.photovoltaic.ui.test; import android.content.Context; import android.os.Build; import androidx.annotation.RequiresApi; import com.alibaba.fastjson.JSON; import com.hdl.photovoltaic.other.HdlUniLogic; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.sdk.link.common.utils.LogUtils; import com.hdl.sdk.link.core.config.HDLLinkConfig; import org.eclipse.paho.android.service.MqttAndroidClient; import org.eclipse.paho.client.mqttv3.IMqttActionListener; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.IMqttToken; import org.eclipse.paho.client.mqttv3.MqttCallbackExtended; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; /** * Created by hxb on 2022/1/6. */ public class UniAppMqtt { private String clientId; /** * 获取标识mqtt的tag值 * * @return - */ public String getClientId() { return clientId; } final String tag = "MqttRecvClient1"; /** * 当前 mqtt client */ MqttAndroidClient mClient; /** * instance */ private volatile static UniAppMqtt instance; /** * getInstance * * @return UniAppMqtt */ public static synchronized UniAppMqtt getInstance() { if (instance == null) { synchronized (HDLLinkConfig.class) { if (instance == null) { instance = new UniAppMqtt(); } } } return instance; } /** * 初始化当前mqtt * * @param context 上下文 * @param serverURI 地址,格式tcp://127.0.0.1:1883 * @param clientId 客户端Id * @param topics 主题 */ public void initMqtt(Context context, String serverURI, String clientId, String[] topics) throws MqttException { if (null != mClient) { return; } this.clientId = clientId; mClient = new MqttAndroidClient(context, serverURI, clientId); mClient.setCallback(new MqttCallbackExtended() { @Override public void connectComplete(boolean reconnect, String serverURI) { for (String topic : topics) { try { subscribe(topic); } catch (MqttException e) { LogUtils.e(tag, "订阅主题失败" + topic); } } } @Override public void connectionLost(Throwable cause) { LogUtils.e(tag, "测试mqtt断开"); } @Override public void messageArrived(String topic, MqttMessage message) { //Topic格式 PCToAndroid(或AndroidToPC)/#guid唯一值/uni_event if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { sendMqttToUni(topic, new String(message.getPayload())); } } @Override public void deliveryComplete(IMqttDeliveryToken token) { // LogUtils.i(tag,"发布消息成功"); } }); //配置连接 MqttConnectOptions options = new MqttConnectOptions(); options.setCleanSession(true); //服务端允许匿名 // options.setUserName("username"); // options.setPassword("password".toCharArray()); options.setAutomaticReconnect(true); // //配置客户端离线或者断开连接的选项 // DisconnectedBufferOptions disconnectedBufferOptions = new DisconnectedBufferOptions(); // disconnectedBufferOptions.setBufferEnabled(true); // disconnectedBufferOptions.setBufferSize(5000); // disconnectedBufferOptions.setDeleteOldestMessages(true); // disconnectedBufferOptions.setPersistBuffer(true); // mClient.setBufferOpts(disconnectedBufferOptions); connect(options); } /** * 连接mqtt * * @param options - */ private void connect(MqttConnectOptions options) throws MqttException { try { mClient.connect(options, new IMqttActionListener() { @Override public void onSuccess(IMqttToken asyncActionToken) { LogUtils.i(tag, "mqtt连接成功"); } @Override public void onFailure(IMqttToken asyncActionToken, Throwable exception) { LogUtils.e(tag, "mqtt连接失败" + JSON.toJSONString(asyncActionToken.getException().getMessage()) + " exception=" + JSON.toJSONString(exception.getMessage())); } }); } catch (MqttException e) { LogUtils.e(tag, e.getMessage()); } } /** * 订阅主题 * * @param topic 主题 */ public void subscribe(String topic) throws MqttException { mClient.subscribe(topic, 2, null, new IMqttActionListener() { @Override public void onSuccess(IMqttToken asyncActionToken) { LogUtils.i(tag, "订阅主题" + topic); } @Override public void onFailure(IMqttToken asyncActionToken, Throwable exception) { LogUtils.e(tag, "订阅主题失败" + topic); } }); } /** * 发布数据出去 * * @param topic 主题 * @param payload 内容 */ public void publish(String topic, String payload) throws MqttException { //回复时,mqtt主题中的方向要变化,要做方向替换 topic = topic.replace("PCToAndroid", "AndroidToPC"); mClient.publish(topic, payload.getBytes(), 1, false, null, new IMqttActionListener() { @Override public void onSuccess(IMqttToken asyncActionToken) { } @Override public void onFailure(IMqttToken asyncActionToken, Throwable exception) { } }); } /** * 取消订阅 * */ public void unsubscribe(String topic) throws MqttException { mClient.unsubscribe(topic, null, new IMqttActionListener() { @Override public void onSuccess(IMqttToken asyncActionToken) { } @Override public void onFailure(IMqttToken asyncActionToken, Throwable exception) { } }); } /** * 断开连接 * */ public void disconnect() throws MqttException { mClient.disconnect(null, new IMqttActionListener() { @Override public void onSuccess(IMqttToken asyncActionToken) { LogUtils.e(tag, "断开连接"); } @Override public void onFailure(IMqttToken asyncActionToken, Throwable exception) { } }); } /** * uni通过qtt传过来的数据处理 * * @param topic 主题 * @param payload 内容 */ @RequiresApi(api = Build.VERSION_CODES.O) void sendMqttToUni(final String topic, String payload) { if (null == topic || null == payload) { return; } String[] split = topic.split("/"); String event = null; for (String s : split) { if (s.startsWith("uni_")) { event = s; break; } } MqttDCUniMPJSCallback mqttDCUniMPJSCallback = new MqttDCUniMPJSCallback(); mqttDCUniMPJSCallback.setMqttCallBack(new MqttCallBack() { @Override public void onResult(Object data) { if (null != data) try { publish(topic, data.toString()); } catch (Exception ignored) { } } }); // JSON.parse(payload) HdlUniLogic.getInstance().onOtherUniMPEventReceive(HDLUniMP.UNI_APP_ID, topic, payload, mqttDCUniMPJSCallback); } private boolean mIsUni = false; public void setUni(boolean isUni) { mIsUni = isUni; } public boolean getUni() { return mIsUni; } } app/src/main/java/com/hdl/photovoltaic/utils/LocalManageUtil.java
@@ -9,7 +9,15 @@ import android.util.DisplayMetrics; import com.alibaba.fastjson.JSON; import com.hdl.linkpm.sdk.utils.HDLFileUtils; import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.ui.adapter.LanguageAdapter; import com.hdl.photovoltaic.ui.bean.LongLatListInfo; import com.hdl.photovoltaic.ui.bean.NationBean; import java.util.ArrayList; import java.util.List; @@ -155,5 +163,49 @@ } //国家,省份,城市 private static List<NationBean> nationBeans = new ArrayList<>(); //国家,省份,经纬度 private static List<LongLatListInfo> longLatBeans = new ArrayList<>(); public static void getLocationInfo(Context context) { if (isZh()) { nationBeans = JSON.parseArray(HdlFileLogic.getInstance().openAssetsFileJson("locationCN.json", context), NationBean.class); } else { nationBeans = JSON.parseArray(HdlFileLogic.getInstance().openAssetsFileJson("locationEN.json", context), NationBean.class); } } public static void getLongLatInfo(Context context) { if (isZh()) { longLatBeans = JSON.parseArray(HdlFileLogic.getInstance().openAssetsFileJson("longLatCN.json", context), LongLatListInfo.class); } else { longLatBeans = JSON.parseArray(HdlFileLogic.getInstance().openAssetsFileJson("longLatEN.json", context), LongLatListInfo.class); } } public static boolean isZh() { // Locale locale = context.getResources().getConfiguration().locale; // String language = locale.getLanguage(); String language = UserConfigManage.getInstance().getCurrentAppLanguage(); return language.equals(zh); } public static List<NationBean> getNationBeans() { if (nationBeans == null) { return new ArrayList<>(); } return nationBeans; } public static List<LongLatListInfo> getLongLatBeans() { if (longLatBeans == null) { return new ArrayList<>(); } return longLatBeans; } } app/src/main/res/layout/activity_start.xml
@@ -12,7 +12,7 @@ android:layout_marginStart="@dimen/dp_5" android:layout_marginEnd="@dimen/dp_5" android:gravity="center" android:text="@string/Welcome_to_the_Smart_Energy_APP" android:text="@string/welcome_to_the_smart_energy_app" android:textColor="@color/text_245EC3" android:textSize="@dimen/text_28" app:layout_constraintBottom_toBottomOf="parent" app/src/main/res/values-en/strings.xml
@@ -202,7 +202,8 @@ <string name="minute">minutes</string> <string name="event"> Event</string> <string name="The_gateway_cannot_be_found_locally">Unable to find gateway under local network</string> <string name="Welcome_to_the_Smart_Energy_APP">Welcome to the Smart Energy APP</string> <string name="welcome_to_the_smart_energy_app">Welcome to the Smart Energy APP</string> <string name="no_permissions_unable_to_receive_push">Unable to receive push notification If the permission is not enabled, you cannot receive push information.</string> <string name="go_to_settings">Go to Settings</string> </resources> app/src/main/res/values-zh/strings.xml
@@ -200,9 +200,9 @@ <string name="minute">分钟</string> <string name="event">事件</string> <string name="The_gateway_cannot_be_found_locally">本地找不到网关</string> <string name="Welcome_to_the_Smart_Energy_APP">欢迎打开智慧能源APP</string> <string name="welcome_to_the_smart_energy_app">欢迎打开智慧能源APP</string> <string name="no_permissions_unable_to_receive_push">通知权限没开启,将无法收到推送信息.</string> <string name="go_to_settings">前往设置</string> </resources> app/src/main/res/values/strings.xml
@@ -200,7 +200,9 @@ <string name="minute">分钟</string> <string name="event">事件</string> <string name="The_gateway_cannot_be_found_locally">本地找不到网关</string> <string name="Welcome_to_the_Smart_Energy_APP">欢迎打开智慧能源APP</string> <string name="welcome_to_the_smart_energy_app">欢迎打开智慧能源APP</string> <string name="no_permissions_unable_to_receive_push">通知权限没开启,将无法收到推送信息.</string> <string name="go_to_settings">前往设置</string> </resources>