From 2744dfb7867000f044c60fe4ee9103ad51532b9b Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 10 一月 2024 18:12:39 +0800 Subject: [PATCH] 2024年01月10日18:12:32 --- app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java | 207 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 153 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java index a83b80e..9f53d29 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java @@ -1,17 +1,23 @@ package com.hdl.photovoltaic.ui; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.appcompat.content.res.AppCompatResources; import androidx.core.app.ActivityCompat; import android.Manifest; +import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.UriPermission; 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; @@ -19,6 +25,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; @@ -29,14 +36,13 @@ import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; 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.HdlLogLogic; import com.hdl.photovoltaic.other.HdlMqttLogic; import com.hdl.photovoltaic.other.HdlOtaLogic; +import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.other.HdlUniLogic; -import com.hdl.photovoltaic.ui.bean.BUserInfo; import com.hdl.photovoltaic.ui.bean.DeviceRemoteInfo; import com.hdl.photovoltaic.ui.bean.OidBean; import com.hdl.photovoltaic.uni.HDLUniMP; @@ -59,6 +65,8 @@ import java.lang.reflect.Type; import java.util.List; +import cn.jpush.android.api.JPushInterface; + /** * 鎴戠殑鐢电珯鐣岄潰 @@ -69,11 +77,7 @@ private ActivityMyPowerStationBinding viewBinding; private int currentFragmentIndex = 1; private EventListener allTopicsListener; - private int backPressTimes; - - private NetworkChangeReceiver networkChangeReceiver; - @Override public Object getContentView() { @@ -92,14 +96,71 @@ this.registerAllTopicsListener(); //鍒濆鍖杕qtt瀹㈡埛绔� this.initMqttClient(); - //鐩戝惉缃戠粶鐘舵�佸彉鍖� - this.networkMonitoring(); + //涓婁紶鏋佸厜娉ㄥ唽ID鍒颁簯绔� + this.pushTokens(); //鐐瑰嚮鏋佸厜閫氱煡鏍忔秷鎭繘鏉� this.clickJpushNotificationMessage(); //閫氱煡闄愭潈 this.notificationSet(); + //鍒濆鍖栨潈闄� + requestPermissions(); + } + + + /** + * 涓婁紶鏋佸厜娉ㄥ唽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() { + String registrationID = JPushInterface.getRegistrationID(_mActivity); + int addCount = 0; + while (TextUtils.isEmpty(registrationID)) { + SystemClock.sleep(1000);//1s浼戠湢 + registrationID = JPushInterface.getRegistrationID(_mActivity); + addCount++; + if (addCount > 5) { + //5s瓒呮椂 + break; + } + } + if (!TextUtils.isEmpty(registrationID)) { + UserConfigManage.getInstance().setRegistrationID(registrationID); + UserConfigManage.getInstance().Save(); + String finalRegistrationID = registrationID; + HdlResidenceLogic.getInstance().pushAdd(new CloudCallBeak<String>() { + @Override + public void onSuccess(String pushId) { + + if (!TextUtils.isEmpty(pushId)) { + UserConfigManage.getInstance().setPushId(pushId); + UserConfigManage.getInstance().Save(); + } + HDLApp.getInstance().setInfoMap("registrationID", "true");//璁板綍涓�涓嬬姸鎬�,鍚庡彴鏉�姝籥pp浼氭竻绌�; + HdlLogLogic.print("娣诲姞鏋佸厜ID鍒颁簯绔�--->registrationID:" + finalRegistrationID, true); + + } + + @Override + public void onFailure(HDLException e) { + HdlLogLogic.print("娣诲姞鏋佸厜ID鍒颁簯绔け璐�--->registrationID:" + finalRegistrationID, true); + } + }); + + } + + + } + }); } /** @@ -109,9 +170,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 @@ -131,15 +192,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() { @@ -177,13 +229,10 @@ HdlUniLogic.getInstance().checkRemoveOtherUniMPEventCallBack(); //绉婚櫎鐩戝惉 HDLLinkLocalSdk.getInstance().removeAllTopicsListener(allTopicsListener); - //绉婚櫎鐩戝惉缃戠粶鐘舵�佸彉鍖� - unregisterReceiver(networkChangeReceiver); - } private void initView() { - viewBinding.myPowerStationBottomIl1.titleTv.setText("棣栭〉");// + viewBinding.myPowerStationBottomIl1.titleTv.setText(R.string.power_shome_page);// viewBinding.myMessageBottomIl2.titleTv.setText(R.string.message); viewBinding.myMeBottomIl3.titleTv.setText(R.string.power_station_me); this.bottomViewChangeOfStyle(); @@ -237,13 +286,12 @@ } public void requestPermissions() { - String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}); + //Manifest.permission.ACCESS_COARSE_LOCATION + String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}); if (ary.length > 0) { - requestPermissions(ary, PermissionUtils.STATUS_SUCCESS); + this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS); } else { - if (mPermissionsResultCallback != null) { - mPermissionsResultCallback.succeed(); - } + locationUpdates(); } } @@ -253,28 +301,17 @@ if (requestCode == PermissionUtils.STATUS_SUCCESS) { for (int i = 0; i < permissions.length; i++) { if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { - if (mPermissionsResultCallback != null) { - mPermissionsResultCallback.succeed(); + switch (permissions[i]) { + case Manifest.permission.ACCESS_FINE_LOCATION: { + locationUpdates(); + } + break; } + } } } - - } - - - private PermissionsResultCallback mPermissionsResultCallback; - - public void setPermissionsResultCallback(PermissionsResultCallback permissionsResultCallback) { - mPermissionsResultCallback = permissionsResultCallback; - } - - public interface PermissionsResultCallback { - - void succeed(); - - void failing(); } @@ -335,12 +372,8 @@ } } } - } - - ; - HDLLinkLocalSdk.getInstance(). - - registerAllTopicsListener(allTopicsListener); + }; + HDLLinkLocalSdk.getInstance().registerAllTopicsListener(allTopicsListener); } /** @@ -488,4 +521,70 @@ } + /** + * 鍒濆鍖栥�愬紑鍚畾浣嶃�戝拰銆愪綅缃俊鎭�戞潈闄� + */ + private void locationUpdates() { + // 鍒濆鍖朙ocationManager瀵硅薄 + LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + // 鍒ゆ柇璁惧鏄惁鏀寔瀹氫綅鍔熻兘 + 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.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { + @Override + public void Confirm() { + confirmationCancelDialog.dismiss(); + Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + HDLApp.getInstance().startActivity(intent); + + } + }); + confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { + @Override + public void Cancel() { + confirmationCancelDialog.dismiss(); + } + }); + + } 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); +// 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); +// } +// }); + } + + + } + + } \ No newline at end of file -- Gitblit v1.8.0