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 | 108 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 86 insertions(+), 22 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 9e76eff..9f53d29 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
@@ -2,14 +2,22 @@
import androidx.annotation.NonNull;
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.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;
@@ -94,6 +102,8 @@
this.clickJpushNotificationMessage();
//閫氱煡闄愭潈
this.notificationSet();
+ //鍒濆鍖栨潈闄�
+ requestPermissions();
}
@@ -276,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();
}
}
@@ -292,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();
}
@@ -523,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