当前位置: 移动技术网 > 移动技术>移动开发>Android > Android获取系统定位

Android获取系统定位

2020年11月12日  | 移动技术网移动技术  | 我要评论
1直接上代码public class LocationUtils { LocationManager locationManager; private Activity activity; public LocationUtils(Activity activity) { this.activity = activity; } /** * 判断手机GPS是否开启 * @return */ public b

1直接上代码

public class LocationUtils {
    LocationManager locationManager;
    private Activity activity;

    public LocationUtils(Activity activity) {
        this.activity = activity;
    }

    /**
     * 判断手机GPS是否开启
     * @return
     */
    public boolean isOpen() {
        locationManager = (LocationManager) activity.getSystemService(Context.LOCATION_SERVICE);
        //通过GPS卫星定位,定位级别到街
        boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        //通过WLAN或者移动网络确定位置
        boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        if (gps || network) {
            return true;
        }
        return false;
    }

    /**
     * 开启手机GPS
     */
    public void openGPS() {
        Intent GPSIntent = new Intent();
        GPSIntent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvide");
        GPSIntent.addCategory("android.intent.category.ALTERNATIVE");
        GPSIntent.setData(Uri.parse("custom:3"));

        try {
            //使用PendingIntent发送广播告诉手机去开启GPS功能
            PendingIntent.getBroadcast(activity, 0, GPSIntent, 0).send();
        } catch (PendingIntent.CanceledException e) {
            e.printStackTrace();
        }
    }

    /**
     * GPS功能已经打开-->根据GPS去获取经纬度
     */
    @SuppressLint("MissingPermission")
    public void getGPSConfi(LocationListener listener) {
        Location location;
        if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
            locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, listener);
            location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        } else {
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, listener);
            location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        }

        if (location != null) {
            double latitude = location.getLatitude();
            double longitude = location.getLongitude();
            ToastUtils.showLong("经纬度:" + latitude + "--" + longitude);
        } else {
            ToastUtils.showLong("未获取到经纬度数据");
        }
    }
}

2.调用

   requestPermissions(new String[]{ android.Manifest.permission.ACCESS_FINE_LOCATION,
                android.Manifest.permission.ACCESS_COARSE_LOCATION}, 10086);
        LocationUtils locationUtils = new LocationUtils(getActivity());
        if(!locationUtils.isOpen()){
            locationUtils.openGPS();
        }
        locationUtils.getGPSConfi(this);

 

 

 

本文地址:https://blog.csdn.net/qq_15059163/article/details/109637677

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网