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)
上一篇 2022年1月19日 上午10:00
下一篇 2022年1月19日 上午10:00


相关推荐

  • 不买API | GPT-5.4接入OpenClaw按照教程

    不买API | GPT-5.4接入OpenClaw按照教程

    2026年3月14日
    2
  • 关于垃圾回收CollectGarbage()的使用

    网络上流传的关于JS释放内存的方式~大概就是只说过。将变量使用以后设置为null,但是IE的GC是当鼠标点击最小化按钮时发生~~也就是说我们从程序上看已经释放了内存其实之前更本没有释放~~~研究jsvm的时候,发现js.lang.System里面定义了gc()方法System.gc=function(){  if(System.isIeBrowser())  {…

    2022年4月7日
    62
  • 达梦数据库备份实操「建议收藏」

    达梦数据库备份实操「建议收藏」达梦数据库备份方式:物理备份,逻辑备份物理备份 冷备:(dmap服务打开的状态下,数据库是关闭的) 热备:(dmap服务一定是打开的,数据库是打开的,数据库要开归档) 逻辑备份 导入导出:dexpdimp 集群:数据守护(dw),DSC(RAC) 达梦支持第三方的备份工具:如第三方备份一体机备份首先要开归档 SQL>alterdatabasemount;#mo…

    2022年5月14日
    42
  • VPP前言

    VPP前言这里写的是研究 vpp 的一些心路历程 我在这里并不打算写下 本科毕业一年之际也就是 20 年五月份第一次接触 vpp 也是公司需要 当时的我对许多网络知识并不了解 因为大学对网络方面的教育太薄弱 当时很难对网络知识有深刻的理解 脑海里剩下的就剩 tcp 三次握手和 DNS 相关的知识 也就会在服务器上配置 IP 网关 路由等 刚开始研究的 OVS 都不知道是什么 更不要提对 SDN NFV 有什么概念 所以研究 VPP 对我是个很大的挑战 除去中间干别的事情的几个月 现在算起来研究 vpp 也有近半年时间了 到现在为止也算是对 vpp 的一

    2026年3月20日
    2
  • QListWidget用法

    QListWidget用法一、参考https://blog.csdn.net/qq_37233607/article/details/78145118QListWidget类重要的函数:1.voidaddItem(constQWidgetItem*);//加入一个项.需要自己先创建一个项的对象.示例如下:QListWidgetItem*ite=newQListWidgetItem;ite->setText(QString::fromLocal8Bit(“杭州”));ui.listWidge

    2022年6月6日
    102
  • JAVA攻防-Agent技术&JVM字节码&Premain启动加载&Agentmain运行附加&内存马应用

    JAVA攻防-Agent技术&JVM字节码&Premain启动加载&Agentmain运行附加&内存马应用

    2026年3月15日
    2

发表回复

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

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