美文网首页
位置服务的 判断+获取+回调

位置服务的 判断+获取+回调

作者: 大白520 | 来源:发表于2020-10-15 16:13 被阅读0次

1、准备阶段

  1. isGPSOPen用于判断是否开启位置服务(gps或者网络)
/**
 * 判断GPS是否开启,GPS或者AGPS开启一个就认为是开启的
 * @param context
 * @return true 表示开启
 */
public boolean isGPSOPen(final Context context) {
    LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
    // 通过GPS卫星定位,定位级别可以精确到街(通过24颗卫星定位,在室外和空旷的地方定位准确、速度快)
    boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    // 通过WLAN或移动网络(3G/2G)确定的位置(也称作AGPS,辅助GPS定位。主要用于在室内或遮盖物(建筑群或茂密的深林等)密集的地方定位)
    boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    if (gps || network) {
        return true;
    }
    return false;
}
  1. onActivityResult用于在开启服务后回调(gps或者网络)
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == 101){
        init();
    }
}

2、开始调用

public void init(){
    //判断是否开启位置服务
    if(!isGPSOPen(this)){
        //没有开启,打开设置界面
        Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        startActivityForResult(intent, 101);
        return;//停止执行
    }

    //已开启
    //其他代码
}

    

在需要获取位置服务之前调用代码会有两种结果1.已授权位置服务正常向下执行,2.未授权位置服务->跳转到设置页授权->然后返回在onActivityResult中重新执行代码

判断是否开启的代码一定要在需要位置服务的代码之前

相关文章

  • 位置服务的 判断+获取+回调

    1、准备阶段 isGPSOPen用于判断是否开启位置服务(gps或者网络) onActivityResult用于在...

  • 微擎小程序无限开,支付回调如何判断uniacid

    本文介绍的是微信支付sdk+微擎,不是微擎原生支付 微信支付回调携带订单号,判断订单号获取uniacid 1、回调...

  • [react]9、setState

    1、获取setState异步更新后的结果 1、setState更新后一个回调函数,可以通过回调函数获取更新后的值 ...

  • 代码优化

    先确定这么长的回调是因为什么,重复的函数有哪些 既然我们每个回调都用到了treeDicEvents,和回调判断,不...

  • 同位置服务相关的若干Infomation Property Li

    同位置服务相关的若干Infomation Property List Key 位置服务类型 标准位置监听:获取用户...

  • ZigeBee操作总结

    ZigBee获取数据回调方法 1.获取温度 public void getTemperature(String ,...

  • Fragment传值到Activity

    采用接口回调机制 在Fragment中定义接口 当Fragment被加载到Activity的时候会被回调,判断宿主...

  • 关于异步回调问题

    JavaScript是单线程!!! 由于一些原因,我在发出ajax请求之后需要在请求成功的回调判断是否获取到了所需...

  • js数组方法的使用 some与every

    Array.some:对目标数组进行遍历,并对每次遍历带有回调函数,回调函数设置对应的判断,当其中一次遍历的回调函...

  • UIScrollView停止滑动

    判断UIScrollView停止滑动 //每次拖拽都会回调 ``` - ( void )scrollViewDid...

网友评论

      本文标题:位置服务的 判断+获取+回调

      本文链接:https://www.haomeiwen.com/subject/xykopktx.html