mac
2024-01-26 159dcb5c3b04a268c20c131df4ab99c1ae12e7db
app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
@@ -7,20 +7,18 @@
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Process;
import android.os.SystemClock;
import android.provider.ContactsContract;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.View;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
@@ -29,7 +27,6 @@
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.bean.MqttInfo;
import com.hdl.photovoltaic.broadcast.NetworkChangeReceiver;
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityMyPowerStationBinding;
@@ -100,11 +97,8 @@
        this.pushTokens();
        //点击极光通知栏消息进来
        this.clickJpushNotificationMessage();
        //通知限权
        this.notificationSet();
        //初始化权限
        requestPermissions();
        this.requestPermissions();
    }
@@ -113,7 +107,8 @@
     * 上传极光注册ID到云端
     */
    private void pushTokens() {
        String is_registrationID = HDLApp.getInstance().getKey("registrationID");
        String registrationId_tag="registrationID_"+UserConfigManage.getInstance().getUserId();
        String is_registrationID = HDLApp.getInstance().getKey(registrationId_tag);
        if (is_registrationID.equals("true")) {
            //上过就没有必要在上传啦
            return;
@@ -145,13 +140,14 @@
                                UserConfigManage.getInstance().setPushId(pushId);
                                UserConfigManage.getInstance().Save();
                            }
                            HDLApp.getInstance().setInfoMap("registrationID", "true");//记录一下状态,后台杀死app会清空;
                            HDLApp.getInstance().setInfoMap(registrationId_tag, "true");//记录一下状态,后台杀死app会清空;
                            HdlLogLogic.print("添加极光ID到云端--->registrationID:" + finalRegistrationID, true);
                        }
                        @Override
                        public void onFailure(HDLException e) {
                            HDLApp.getInstance().setInfoMap(registrationId_tag, "false");//记录一下状态,后台杀死app会清空;
                            HdlLogLogic.print("添加极光ID到云端失败--->registrationID:" + finalRegistrationID, true);
                        }
                    });
@@ -286,7 +282,11 @@
    }
    public void requestPermissions() {
        //消息通知限权
        this.notificationSet();
        //Manifest.permission.ACCESS_COARSE_LOCATION
        //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);
@@ -337,7 +337,15 @@
                    HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                    uniCallBackBaseBean.setType(response.getTopic());
                    uniCallBackBaseBean.setData(response.getData());
//                    if (com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().getUni()) {
//                        try {
//                            String t = String.format("AndroidToPC/%s/%s", System.currentTimeMillis(), HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL);
//                            com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().publish(t, JSONObject.toJSON(uniCallBackBaseBean).toString());
//                        } catch (Exception ignored) {
//                        }
//                    } else {
                    HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
//                    }
//                    }
                } else if (msg instanceof LinkResponse) {
@@ -525,8 +533,38 @@
     * 初始化【开启定位】和【位置信息】权限
     */
    private void locationUpdates() {
        // 初始化LocationManager对象
        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//        //INTERNET   允许使用网络
//        //ACCESS_FINE_LOCATION   允许使用GPS定位
//        //ACCESS_COARSE_LOCATION   允许使用WIFI热点或基站来获取粗略的定位
//        if (ActivityCompat.checkSelfPermission(_mActivity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
//            // TODO: Consider calling
//            //    ActivityCompat#requestPermissions
//            // here to request the missing permissions, and then overriding
//            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
//            //                                          int[] grantResults)
//            // to handle the case where the user grants the permission. See the documentation
//            // for ActivityCompat#requestPermissions for more details.
//            return;
//        }
//        HdlLogLogic.print("开始纬度经度--->", false);
//        Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
//
//        //建议这个 minTime 不小于 60000,即 1 分钟,这样会更加高效而且省电
//        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
//            @Override
//            public void onLocationChanged(@NonNull Location location) {
//                // 当位置发生变化时调用此方法
//                double latitude = location.getLatitude();   // 获取纬度
//                double longitude = location.getLongitude(); // 获取经度
//
//                HdlLogLogic.print("纬度--->" + latitude, true);
//                HdlLogLogic.print("经度--->" + longitude, true);
//            }
//        });
        // 判断设备是否支持定位功能
        if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
            // 提示用户打开定位功能或者引导用户去系统设置页面打开定位功能
@@ -553,34 +591,35 @@
            });
        } else {
//            //INTERNET   允许使用网络
//            //ACCESS_FINE_LOCATION   允许使用GPS定位
//            //ACCESS_COARSE_LOCATION   允许使用WIFI热点或基站来获取粗略的定位
//            if (ActivityCompat.checkSelfPermission(_mActivity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
//                // TODO: Consider calling
//                //    ActivityCompat#requestPermissions
//                // here to request the missing permissions, and then overriding
//                //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
//                //                                          int[] grantResults)
//                // to handle the case where the user grants the permission. See the documentation
//                // for ActivityCompat#requestPermissions for more details.
//                return;
//            }
//            HdlLogLogic.print("开始纬度经度--->", true);
            //INTERNET   允许使用网络
            //ACCESS_FINE_LOCATION   允许使用GPS定位
            //ACCESS_COARSE_LOCATION   允许使用WIFI热点或基站来获取粗略的定位
            if (ActivityCompat.checkSelfPermission(_mActivity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                // TODO: Consider calling
                //    ActivityCompat#requestPermissions
                // here to request the missing permissions, and then overriding
                //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
                //                                          int[] grantResults)
                // to handle the case where the user grants the permission. See the documentation
                // for ActivityCompat#requestPermissions for more details.
                return;
            }
            HdlLogLogic.print("开始纬度经度--->", false);
//            Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
//
//            //建议这个 minTime 不小于 60000,即 1 分钟,这样会更加高效而且省电
//            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
//                @Override
//                public void onLocationChanged(@NonNull Location location) {
//                    // 当位置发生变化时调用此方法
//                    double latitude = location.getLatitude();   // 获取纬度
//                    double longitude = location.getLongitude(); // 获取经度
//
//                    HdlLogLogic.print("纬度--->" + latitude, true);
//                    HdlLogLogic.print("经度--->" + longitude, true);
//                }
//            });
            //建议这个 minTime 不小于 60000,即 1 分钟,这样会更加高效而且省电
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60 * 1000, 10, new LocationListener() {
                @Override
                public void onLocationChanged(@NonNull Location location) {
                    // 当位置发生变化时调用此方法
                    double latitude = location.getLatitude();   // 获取纬度
                    double longitude = location.getLongitude(); // 获取经度
                    HdlLogLogic.print("纬度--->" + latitude, false);
                    HdlLogLogic.print("经度--->" + longitude, false);
                }
            });
        }