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

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

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

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

代码:

  1. import android.content.Context;
  2. import android.content.Intent;
  3. import android.location.LocationManager;
  4. import android.net.ConnectivityManager;
  5. import android.net.NetworkInfo;
  6. import android.net.wifi.WifiManager;
  7. import android.provider.Settings;
  8.  
  9. /**
  10. * Created by wangchenlong on 14-11-17.
  11. *
  12. * 定位服务的库:
  13. * 包括功能:推断是否启动 定位服务、网络连接、WIFI连接
  14. * 页面跳转-> 定位服务设置界面。WIFI设置界面
  15. */
  16. public class LocationServiceUtils {
  17.  
  18. private static final String TAG = "LocationServiceUtils";
  19.  
  20. /**
  21. * 推断是否启动定位服务
  22. *
  23. * @param context 全局信息接口
  24. * @return 是否启动定位服务
  25. */
  26. public static boolean isOpenLocService(final Context context) {
  27.  
  28. boolean isGps = false; //推断GPS定位是否启动
  29. boolean isNetwork = false; //推断网络定位是否启动
  30.  
  31. if (context != null) {
  32.  
  33. LocationManager locationManager
  34. = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
  35.  
  36. if (locationManager != null) {
  37. //通过GPS卫星定位,定位级别能够精确到街(通过24颗卫星定位,在室外和空旷的地方定位准确、速度快)
  38. isGps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
  39. //通过WLAN或移动网络(3G/2G)确定的位置(也称作AGPS,辅助GPS定位。主要用于在室内或遮盖物(建筑群或茂密的深林等)密集的地方定位)
  40. isNetwork = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
  41. }
  42.  
  43. if (isGps || isNetwork) {
  44. return true;
  45. }
  46.  
  47. }
  48.  
  49. return false;
  50. }
  51.  
  52. /**
  53. * 推断是否启动所有网络连接,包括WIFI和流量
  54. *
  55. * @param context 全局信息接口
  56. * @return 是否连接到网络
  57. */
  58. public static boolean isNetworkConnected(Context context) {
  59.  
  60. if (context != null) {
  61.  
  62. ConnectivityManager mConnectivityManager =
  63. (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  64.  
  65. NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
  66.  
  67. if (mNetworkInfo != null) {
  68. return mNetworkInfo.isAvailable();
  69. }
  70.  
  71. }
  72. return false;
  73. }
  74.  
  75. /**
  76. * 推断是否启动WIFI连接
  77. *
  78. * @param context 全局信息接口
  79. * @return 是否连接到WIFI
  80. */
  81. public static boolean isWifiConnected(Context context) {
  82.  
  83. if (context != null) {
  84.  
  85. WifiManager wifi = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
  86.  
  87. if (wifi != null) {
  88. return wifi.isWifiEnabled();
  89. }
  90.  
  91. }
  92.  
  93. return false;
  94. }
  95.  
  96. /**
  97. * 跳转定位服务界面
  98. *
  99. * @param context 全局信息接口
  100. */
  101. public static void gotoLocServiceSettings(Context context) {
  102. final Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
  103. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  104. context.startActivity(intent);
  105. }
  106.  
  107. /**
  108. * 跳转WIFI服务界面
  109. *
  110. * @param context 全局信息接口
  111. */
  112. public static void gotoWifiServiceSettings(Context context) {
  113. final Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
  114. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  115. context.startActivity(intent);
  116. }
  117.  
  118. }

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

Android - 位置定位(Location)服务(Service)类的基本操作的更多相关文章

  1. Android学习笔记_23_服务Service之AIDL和远程服务实现进程通信以及进程间传递自定义类型参数

    一.了解AIDL语言: 在Android中, 每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢? 显然, Java中是不支持跨进程内存共享的.因此要传递对象, 需要把对象解析 ...

  2. Android四大组件之服务-Service 原理和应用开发详解

    一.Android 服务简介 Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver.ContentProvider),它跟Acti ...

  3. Android学习笔记_22_服务Service应用之—与Activity进行相互通信的本地服务

    一.启动服务的两种方法方法: 第一种:  startService()和stopService()启动关闭服务.适用于服务和Activity之间没有调用交互的情况.如果相互之间需要方法调用或者传递参数 ...

  4. Android系统编程入门系列之加载服务Service

    之前几篇文章简单梳理了在Android系统的四大组件之一,最主要的界面Activity中,使应用程序与用户进行交互响应的相关知识点,那对于应用程序中不需要与用户交互的逻辑,又要用到哪些内容呢?本文开始 ...

  5. Android系统编程入门系列之服务Service中的进程间通信

    在上篇文章以线程间的通信方式Handler类结尾,服务Service还支持的进程间通信,又是具体怎么实现的呢?这就要用到加载服务一文中提到的AIDL语言规范了. AIDL是 Android Inter ...

  6. Android服务Service具体解释(作用,生命周期,AIDL)系列文章-为什么须要服务呢?

    Android服务Service具体解释(作用,生命周期,AIDL) 近期沉迷于上班,没有时间写博客了.解衣入睡,未眠.随起床写一篇博客压压惊! ##我们android系统为什么须要服务Service ...

  7. LBS(Location Based Service)(基于位置的服务)

    LBS(Location Based Service)(基于位置的服务) Android 中定位方式基本可以分为两种:GPS定位,网络定位. GPS定位的工作原理是基于手机内置的GPS硬件直接和卫星进 ...

  8. Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK

    原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  9. Android 位置服务——BaiduLocation的使用

    原文:Android 位置服务--BaiduLocation的使用 版权声明:本文为博主原创文章,欢迎转载,转载请在文章显眼处说明文章出处并给出连接. https://blog.csdn.net/To ...

随机推荐

  1. java中完美打包

    前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...

  2. 工信部表态支持Linux,可是Linux又是什么呢?

    近日,工信部高层官员出面表态:工信部大力支持发展国产Linux操作系统,可是,Linux又是什么呢?假设依照工信部的说法,发展所谓"国产Linux".恐怕要给国家带来麻烦. 大家知 ...

  3. Swift - 继承UIView实现自定义可视化组件(附记分牌样例)

    在iOS开发中,如果创建一个自定义的组件通常可以通过继承UIView来实现.下面以一个记分牌组件为例,演示了组件的创建和使用,以及枚举.协议等相关知识的学习. 效果图如下:    组件代码:Score ...

  4. Xamainr 地图之webview初探

    一 说几点 当下移动开发主要实现方式有传统的Native以及新的混合开发想Rect.js,nodejs这些前段框架,其本质要么是原生控件来实现UI,要么html来实现UI.Xamarin其实也只是取巧 ...

  5. Servlet和JSP读书笔记(二)

    一. GenericServlet 1. 前面写的 Servlet和JSP学习笔记(一) 中的实例都是通过实现Servlet接口编写的,这样存在的问题就是:你必须实现Servlet中的所有方法,而不管 ...

  6. [计算机基础]关于实体( Entity )和模型( Model )

    实体与模型的浅析 在日常开发过程中经常看到Entity,Model,DataModel,它们之间到底有什么异同?下面是我个人的一些理解. 一.Entity,Model,它们是什么? 维基百科描述: 实 ...

  7. NET Core 中的依赖注入

    NET Core 中的依赖注入 [共7篇] 一.控制反转(IoC) ASP.NET Core在启动以及后续针对每个请求的处理过程中的各个环节都需要相应的组件提供相应的服务,为了方便对这些组件进行定制, ...

  8. [Android]ADT Run时候报错:The connection to adb is down, and a severe error has occured

    The connection to adb is down, and a severe error has occured. 之 ..\sdk\platform-tools\adb.exe and c ...

  9. Pods was rejected as an implicit dependency for 'libPods.a' because its architectures 'x86_64' didn

    引入cocoaPods后.第一次编译,或者运行update后 可能报这个错误: Pods was rejected as an implicit dependency for 'libPods.a' ...

  10. How to use STA(sql tuning advisor)

    一.手工生成Sql tuning advisor  1.SQL text format: DECLARE   my_task_name VARCHAR2(30);   my_sqltext   CLO ...