Android – 位置定位(Location)服务(Service)类的基本操作「建议收藏」

Android – 位置定位(Location)服务(Service)类的基本操作

大家好,又见面了,我是全栈君。

位置定位(Location)服务(Service)类的基本操作


本文地址: http://blog.csdn.net/caroline_wendy


定位服务(Location Service),能够确定移动设备的地址,在地图相关服务中。经常会使用GPS和移动相关的两种定位服务,GPS较为精准。

依据经常使用的定位服务功能。又加入网络检測Wifi检測,和启动系统设置界面进行測试的功能。


代码:

import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.provider.Settings;

/**
 * Created by wangchenlong on 14-11-17.
 *
 * 定位服务的库:
 * 包括功能:推断是否启动 定位服务、网络连接、WIFI连接
 * 页面跳转-> 定位服务设置界面。WIFI设置界面
 */
public class LocationServiceUtils {

    private static final String TAG = "LocationServiceUtils";

    /**
     * 推断是否启动定位服务
     *
     * @param context 全局信息接口
     * @return 是否启动定位服务
     */
    public static boolean isOpenLocService(final Context context) {

        boolean isGps = false; //推断GPS定位是否启动
        boolean isNetwork = false; //推断网络定位是否启动

        if (context != null) {

            LocationManager locationManager
                    = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);

            if (locationManager != null) {
                //通过GPS卫星定位,定位级别能够精确到街(通过24颗卫星定位,在室外和空旷的地方定位准确、速度快)
                isGps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
                //通过WLAN或移动网络(3G/2G)确定的位置(也称作AGPS,辅助GPS定位。主要用于在室内或遮盖物(建筑群或茂密的深林等)密集的地方定位)
                isNetwork = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
            }

            if (isGps || isNetwork) {
                return true;
            }

        }

        return false;
    }

    /**
     * 推断是否启动所有网络连接,包括WIFI和流量
     *
     * @param context 全局信息接口
     * @return 是否连接到网络
     */
    public static boolean isNetworkConnected(Context context) {

        if (context != null) {

            ConnectivityManager mConnectivityManager =
                    (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();

            if (mNetworkInfo != null) {
                return mNetworkInfo.isAvailable();
            }

        }
        return false;
    }

    /**
     * 推断是否启动WIFI连接
     *
     * @param context 全局信息接口
     * @return 是否连接到WIFI
     */
    public static boolean isWifiConnected(Context context) {

        if (context != null) {

            WifiManager wifi = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);

            if (wifi != null) {
                return wifi.isWifiEnabled();
            }

        }

        return false;
    }

    /**
     * 跳转定位服务界面
     *
     * @param context 全局信息接口
     */
    public static void gotoLocServiceSettings(Context context) {
        final Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }

    /**
     * 跳转WIFI服务界面
     *
     * @param context 全局信息接口
     */
    public static void gotoWifiServiceSettings(Context context) {
        final Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }

}

工具类的静态方法能够直接使用。



Android - 位置定位(Location)服务(Service)类的基本操作「建议收藏」


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116593.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 常见的图像增强方法有_图像中值滤波的算法实现

    常见的图像增强方法有_图像中值滤波的算法实现1.对比度拉升采用了线性函数对图像的灰度值进行变换2.Gamma校正采用了非线性函数(指数函数)对图像的灰度值进行变换这两种方式的实质是对感兴趣的图像区域进行展宽,对不感兴趣的背景区域进行

    2022年8月3日
    5
  • 查看idea激活码-激活码分享

    (查看idea激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSWQi…

    2022年3月27日
    77
  • python有序列表_python有序列表以及方法的介绍(代码)

    python有序列表_python有序列表以及方法的介绍(代码)本篇文章给大家带来的内容是关于python有序列表以及方法的介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。有序列表以及有序列表的函数和方法(list)list=[‘hello’,’wrold’]#len获取查询长度length=len(list)#append添加一个新元素,到list的末尾list.append(‘admin’)#pop删除指定位…

    2022年6月16日
    39
  • NFV基础技术_零基础

    NFV基础技术_零基础网络虚拟化技术,即用软件来安装、控制、操作那些运行在通用硬件上的网络功能,融合了云和虚拟化技术,使得新一代网络业务拥有更好的伸缩性和自动化能力。这些新涌现的技术经常被不加区分地称为NFV(网络功能虚拟化)和SDN(软件定义网络),虽然二者有逐渐融合之势,但二者的初衷和架构并不相同:SDN起源于园区网,发展于数据中心,目的是将控制平面和转发平面分离,通过集中化的控制平面能够灵活定义网络行为。N…

    2025年8月28日
    8
  • Pycharm配置(1)——解释器(interpreter)「建议收藏」

    Pycharm配置(1)——解释器(interpreter)「建议收藏」今天导入模块,发现出了很多错,要升级pip,但是我发现在新建的工程项目(PycharmIDE)中有pip,而我安装的Python3中,也有pip,那我升级哪一个呢?1、首先,遇到的问题是:已经安装python,dos窗口却提示“python不是内部命令或外部命令,也不是可运行的程序”解决方案:点击打开链接2、发现两者都是一样的,都是解释器(ProjectInterpreter)的问题先说一下,…

    2022年8月29日
    3
  • keil调试程序的断点设置技巧

    keil调试程序的断点设置技巧这几天整同事留下来的项目的BOM,很简单的错误,弄的头大,看下文章分下神,值得尝试一下这个调试方法。程序运行过程中,有些数据被莫名修改了,在哪里修改的?又是怎么修改的?这个代码我只想知道是否运行过,或者运行了多少次,但是不想让程序停下来,或者仅打印调试信息,怎么办?当这个变量设置成某个数据后,我想让程序自动暂停下来进行分析,怎么办?以上问题的所有答案就在本节内容:断点窗口(KEIL)。本节…

    2025年6月1日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号