歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android的Location功能代碼

Android的Location功能代碼

日期:2017/3/1 10:56:26   编辑:Linux編程

此代碼為Location功能的簡單封裝。

package arui.csdn.net;

  1. import static Android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.location.Location;
  6. import android.location.LocationListener;
  7. import android.location.LocationManager;
  8. import android.os.Bundle;
  9. public class LocationUtil {
  10. public static boolean isEnabled(Context context) {
  11. LocationManager mLocationManager = (LocationManager) context
  12. .getSystemService(Context.LOCATION_SERVICE);
  13. if (mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
  14. return true;
  15. }
  16. if (mLocationManager
  17. .isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
  18. return true;
  19. }
  20. return false;
  21. }
  22. public static void startLocationService(Context context) {
  23. LocationManager mLocationManager = (LocationManager) context
  24. .getSystemService(Context.LOCATION_SERVICE);
  25. mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
  26. 1000L, 10, mLocationListener);
  27. mLocationManager.requestLocationUpdates(
  28. LocationManager.NETWORK_PROVIDER, 1000L, 10,
  29. mLocationListener);
  30. }
  31. public static void stopLocationService(Context context) {
  32. LocationManager mLocationManager = (LocationManager) context
  33. .getSystemService(Context.LOCATION_SERVICE);
  34. mLocationManager.removeUpdates(mLocationListener);
  35. }
  36. public static Location getLocationByGPS(Context context) {
  37. LocationManager mLocationManager = (LocationManager) context
  38. .getSystemService(Context.LOCATION_SERVICE);
  39. Location location = mLocationManager
  40. .getLastKnownLocation(LocationManager.GPS_PROVIDER);
  41. return location;
  42. }
  43. public static Location getLocationByNetwork(Context context) {
  44. LocationManager mLocationManager = (LocationManager) context
  45. .getSystemService(Context.LOCATION_SERVICE);
  46. Location location = mLocationManager
  47. .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
  48. return location;
  49. }
  50. public static void openLocationSetting(Activity act, int requestCode) {
  51. act.startActivityForResult(new Intent(ACTION_LOCATION_SOURCE_SETTINGS),
  52. requestCode);
  53. }
  54. private static final LocationListener mLocationListener = new LocationListener() {
  55. public void onLocationChanged(Location location) {
  56. // 當坐標改變時觸發此函數,如果Provider傳進相同的坐標,它就不會被觸發
  57. System.out.println("onLocationChanged:" + location.getLatitude());
  58. }
  59. public void onProviderDisabled(String provider) {
  60. // Provider被disable時觸發此函數,比如GPS被關閉
  61. System.out.println("onProviderDisabled:" + provider);
  62. }
  63. public void onProviderEnabled(String provider) {
  64. // Provider被enable時觸發此函數,比如GPS被打開
  65. System.out.println("onProviderEnabled:" + provider);
  66. }
  67. public void onStatusChanged(String provider, int status, Bundle extras) {
  68. // Provider的轉態在可用、暫時不可用和無服務三個狀態直接切換時觸發此函數
  69. System.out.println("onStatusChanged:" + status);
  70. }
  71. };
  72. }

需要增加權限:

<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" />

Copyright © Linux教程網 All Rights Reserved