1.定位的问题

This commit is contained in:
2025-09-26 01:13:02 +08:00
parent 59eeb1415b
commit bba729f5d0
2 changed files with 78 additions and 61 deletions

View File

@@ -43,13 +43,13 @@ import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode; import org.greenrobot.eventbus.ThreadMode;
public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewDataBinding> extends BaseAppCompatActivity<VDB> implements public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewDataBinding> extends BaseAppCompatActivity<VDB> implements
IView<Activity>, LocationProvider.LocationCallback { IView<Activity> {
protected P MvpPre; protected P MvpPre;
protected abstract P bindPresenter(); protected abstract P bindPresenter();
private String city1;
@Override @Override
protected void initView() { protected void initView() {
@@ -120,7 +120,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
// 错误处理 // 错误处理
} }
}); });
initLocation(); //initLocation();
} }
}); });
V2TIMManager.getInstance().addIMSDKListener(imSdkListener); V2TIMManager.getInstance().addIMSDKListener(imSdkListener);
@@ -184,51 +184,7 @@ public abstract class BaseMvpActivity<P extends IPresenter, VDB extends ViewData
}, false, 0).show(); }, false, 0).show();
} }
private SystemLocationProvider locationProvider;
private void initLocation() {
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// 请求定位权限
ActivityCompat.requestPermissions(
(Activity) this,
new String[]{
android.Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION
},
1001 // 自定义常量,比如 1001
);
}
locationProvider = new SystemLocationProvider();
// 请求一次性的位置信息
locationProvider.getLastKnownLocation(this, this);
}
@Override
public void onLocationReceived(double latitude, double longitude, String city) {
LogUtils.e("当前位置:" + city);
city1 = city;
EventBus.getDefault().post(city1);
}
@Override
public void onFailed(String errorMessage) {
LogUtils.e("定位失败");
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1001) {
if (locationProvider == null) {
locationProvider = new SystemLocationProvider();
}
locationProvider.getLastKnownLocation(this, this);
}
}
@Override @Override
public Resources getResources() { public Resources getResources() {

View File

@@ -1,5 +1,7 @@
package com.xscm.modulemain.activity; package com.xscm.modulemain.activity;
import android.Manifest;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
@@ -19,6 +21,8 @@ import android.view.animation.AnimationUtils;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
@@ -56,6 +60,8 @@ import com.xscm.moduleutil.utils.BackgroundManager;
import com.xscm.moduleutil.utils.ColorManager; import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageLoader; import com.xscm.moduleutil.utils.ImageLoader;
import com.xscm.moduleutil.utils.SpUtil; import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.utils.location.LocationProvider;
import com.xscm.moduleutil.utils.location.SystemLocationProvider;
import com.xscm.moduleutil.utils.logger.Logger; import com.xscm.moduleutil.utils.logger.Logger;
import com.tencent.imsdk.v2.V2TIMManager; import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMValueCallback; import com.tencent.imsdk.v2.V2TIMValueCallback;
@@ -69,7 +75,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
@Route(path = ARouteConstants.ME) @Route(path = ARouteConstants.ME)
public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBinding> implements HomeContacts.View, View.OnClickListener { public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBinding>
implements HomeContacts.View, View.OnClickListener, LocationProvider.LocationCallback {
private static int index = -1; private static int index = -1;
public static boolean isShortsShowing() { public static boolean isShortsShowing() {
@@ -178,6 +185,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
} }
}); });
} }
@@ -262,6 +270,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
} }
return super.onKeyDown(keyCode, event); return super.onKeyDown(keyCode, event);
} }
// 最推荐的方法 // 最推荐的方法
private void clearAllOtherTasksAndRestart() { private void clearAllOtherTasksAndRestart() {
// Intent intent = new Intent(this, MainActivity.class); // Intent intent = new Intent(this, MainActivity.class);
@@ -278,6 +287,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
// 可选:如果上面的方法不够彻底,可以配合使用 // 可选:如果上面的方法不够彻底,可以配合使用
Runtime.getRuntime().gc(); // 建议垃圾回收 Runtime.getRuntime().gc(); // 建议垃圾回收
} }
/** /**
* 优雅地退出应用,避免闪屏 * 优雅地退出应用,避免闪屏
*/ */
@@ -540,13 +550,11 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
} }
MvpPre.getMyInfo(SpUtil.getUserId() + "");//获取首充是否需要展示 MvpPre.getMyInfo(SpUtil.getUserId() + "");//获取首充是否需要展示
// mBinding.ivShouchl.setVisibility(View.VISIBLE); // mBinding.ivShouchl.setVisibility(View.VISIBLE);
LogUtils.e("@@@1","开始定位", "描述:", "");
initLocation();
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
@@ -619,6 +627,24 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
} }
} }
private String city1;
@Override
public void onLocationReceived(double latitude, double longitude, String city) {
LogUtils.e("当前位置:" + city);
city1 = city;
EventBus.getDefault().post(city1);
LogUtils.e("@@@1","开始定位", "描述:","当前位置"+city);
}
@Override
public void onFailed(String errorMessage) {
LogUtils.e("@@@1","开始定位", "描述:","失败");
}
public static int getCurrentVersionCode(Context context) { public static int getCurrentVersionCode(Context context) {
try { try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
@@ -845,4 +871,39 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
// super.onPause(); // super.onPause();
// moveTaskToBack(true); // moveTaskToBack(true);
// } // }
private SystemLocationProvider locationProvider;
private void initLocation() {
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// 请求定位权限
ActivityCompat.requestPermissions(
(Activity) this,
new String[]{
android.Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION
},
1001 // 自定义常量,比如 1001
);
}
locationProvider = new SystemLocationProvider();
// 请求一次性的位置信息
locationProvider.getLastKnownLocation(this, this);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1001) {
if (locationProvider == null) {
locationProvider = new SystemLocationProvider();
}
locationProvider.getLastKnownLocation(this, this);
}
}
} }