Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android - 位置定位(Location)服務(Service)類的基本操作

Android - 位置定位(Location)服務(Service)類的基本操作

編輯:關於Android編程

位置定位(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);
    }

}



工具類的靜態方法可以直接使用。





  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved