欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Android_GPS

系統(tǒng) 2053 0

Android可以通過多種方式獲取用戶位置。本文主要將GPS和NETWORK兩種方式。

先簡單的介紹下怎么在Android設備上獲取用戶位置。

  1. //獲取系統(tǒng)位置服務的引用
  2. LocationManagerlocationManager=(LocationManager) this .getSystemService(Context.LOCATION_SERVICE);
  3. //定義對位置變化的監(jiān)聽函數(shù)
  4. LocationListenerlocationListener= new LocationListener(){
  5. public void onLocationChanged(Locationlocation){
  6. //Calledwhenanewlocationisfoundbythenetworklocationprovider.
  7. makeUseOfNewLocation(location);
  8. }
  9. public void onStatusChanged(Stringprovider, int status,Bundleextras){}
  10. public void onProviderEnabled(Stringprovider){}
  11. public void onProviderDisabled(Stringprovider){}
  12. };
  13. //向位置服務注冊監(jiān)聽函數(shù)來接受位置更新
  14. locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0 , 0 ,locationListener);

首先要獲取LocationManager對象,LocationManager不能直接new出來,他是系統(tǒng)的一項服務。

requestLocationUpdates()方法是來更新用戶的位置的。第一個參數(shù)是Location Provider(位置提供者)的使用類型。(本例中使用的是基于手機信號塔和Wi_FI基站的網(wǎng)絡位置提供者)。二個參數(shù)是通知之間的最小時間間隔(單位微秒),第三個是通知之間最小的距離變化(單位米)。將兩個的值設置為零可以盡可能頻繁的獲取位置的通知。最后一個參數(shù)是 接受位置更新回調函數(shù)LocationListener。

為了使用GPS提供者來獲取位置的更新,可以將NETWORK_PROVIDER.更改為GPS_PROVIDER。也可以通過兩次調用requestLocationUpdates()(一次 NETWORK_PROVIDER ,一次GPS_PROVIDER.)來同時使用GPS和Network Location 內容提供者獲取位置更新。

為了能夠接受來自 NETWORK_PROVIDER或者GPS_PROVIDER的位置更新,必須在Android 的mainifest的文件中聲明ACCESS_COARSE_LOCATION 或者ACCESS_FINE_LOCATION的用戶權限。如果沒有這些權限,會報錯。NETWORK_PROVIDER需要ACCESS_COARSE_LOCATION權限(粗糙的定位權限),GPS_PROVIDER需要ACCESS_FINE_LOCATION權限(精確的定位權限)。當然,如果有ACCESS_FINE_LOCATION權限,NETWORK_PROVIDER和GPS_PROVIDER都能用

LocationListener中的四個回調函數(shù)

onLocationChanged:當位置變化時調用

onStatusChanged: 此方法在 Provider 的狀態(tài)在可用、暫時不可用和無服務三個狀態(tài)直接切換時被調用。 試了一下,在位置提供者為network的前提下,聯(lián)網(wǎng)和斷網(wǎng)此方法會被調用

onProviderEnabled和onProviderDisabled:provider 被用戶開啟或關閉后調用 。試了一下,在位置提供者為GPS的前提下,打開和關閉GPS此方法會被調用。

最后附上一個Demo:

  1. package com.tianjf.locationgpsdemo;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.location.Criteria;
  6. import android.location.Location;
  7. import android.location.LocationListener;
  8. import android.location.LocationManager;
  9. import android.os.Bundle;
  10. import android.provider.Settings;
  11. import android.widget.TextView;
  12. import android.widget.Toast;
  13. public class MainActivity extends Activity{
  14. TextViewmTextView;
  15. LocationManagermLocationManager;
  16. @Override
  17. protected void onCreate(BundlesavedInstanceState){
  18. super .onCreate(savedInstanceState);
  19. setContentView(R.layout.activity_main);
  20. mTextView=(TextView)findViewById(R.id.text_view);
  21. mLocationManager=(LocationManager) this
  22. .getSystemService(Context.LOCATION_SERVICE);
  23. openGPSSetting();
  24. getLocation();
  25. }
  26. private void openGPSSetting(){
  27. if (mLocationManager
  28. .isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)){
  29. Toast.makeText( this , "GPS模塊正常" ,Toast.LENGTH_SHORT).show();
  30. return ;
  31. }
  32. Toast.makeText( this , "請開啟GPS!" ,Toast.LENGTH_SHORT).show();
  33. //跳轉到GPS的設置頁面
  34. Intentintent= new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
  35. startActivityForResult(intent, 0 ); //此為設置完成后返回到獲取界面
  36. }
  37. private void getLocation(){
  38. //android通過criteria選擇合適的地理位置服務
  39. Criteriacriteria= new Criteria();
  40. criteria.setAccuracy(Criteria.ACCURACY_FINE); //高精度
  41. criteria.setAltitudeRequired( false ); //設置不需要獲取海拔方向數(shù)據(jù)
  42. criteria.setBearingRequired( false ); //設置不需要獲取方位數(shù)據(jù)
  43. criteria.setCostAllowed( true ); //設置允許產(chǎn)生資費
  44. criteria.setPowerRequirement(Criteria.POWER_LOW); //低功耗
  45. Stringprovider=mLocationManager.getBestProvider(criteria, true ); //獲取GPS信息
  46. Locationlocation=mLocationManager.getLastKnownLocation(provider); //通過GPS獲取位置
  47. updateUIToNewLocation(location);
  48. //設置監(jiān)聽器,自動更新的最小時間為間隔N秒(這里的單位是微秒)或最小位移變化超過N米(這里的單位是米)
  49. mLocationManager.requestLocationUpdates(provider, 1 * 1000 , 0 .00001F,
  50. locationListener);
  51. }
  52. private void updateUIToNewLocation(Locationlocation){
  53. if (location!= null ){
  54. mTextView.setText( "緯度:" +location.getLatitude()+ "\n經(jīng)度"
  55. +location.getLongitude());
  56. //Location類的方法:
  57. //getAccuracy():精度(ACCESS_FINE_LOCATION/ACCESS_COARSE_LOCATION)
  58. //getAltitude():海撥
  59. //getBearing():方位,行動方向
  60. //getLatitude():緯度
  61. //getLongitude():經(jīng)度
  62. //getProvider():位置提供者(GPS/NETWORK)
  63. //getSpeed():速度
  64. //getTime():時刻
  65. } else {
  66. mTextView.setText( "無法獲取地理信息" );
  67. }
  68. }
  69. //定義對位置變化的監(jiān)聽函數(shù)
  70. LocationListenerlocationListener= new LocationListener(){
  71. public void onLocationChanged(Locationlocation){
  72. System.out.println( "onLocationChanged" );
  73. System.out.println( "緯度:" +location.getLatitude()+ "\n經(jīng)度"
  74. +location.getLongitude());
  75. }
  76. public void onStatusChanged(Stringprovider, int status,Bundleextras){
  77. System.out.println( "onStatusChanged" );
  78. System.out.println( "privider:" +provider);
  79. System.out.println( "status:" +status);
  80. System.out.println( "extras:" +extras);
  81. }
  82. public void onProviderEnabled(Stringprovider){
  83. System.out.println( "onProviderEnabled" );
  84. System.out.println( "privider:" +provider);
  85. }
  86. public void onProviderDisabled(Stringprovider){
  87. System.out.println( "onProviderDisabled" );
  88. System.out.println( "privider:" +provider);
  89. }
  90. };
  91. }

轉自:http://blog.csdn.net/tianjf0514/article/details/8295099

Android_GPS


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久福利青草精品资源 | 国产精品亚洲综合 | 久久丁香 | 亚洲精品电影在线观看 | 欧美片第一页 | 欧美日韩国产综合一区二区三区 | 久久精品国产免费中文 | 美国黄色一级片 | 天天高清| 福利视频1000 | 色黄小说 | 亚洲狠狠爱 | 欧美成人私人视频88在线观看 | 狠狠搞视频 | 狠狠干美女 | 免费成人在线网站 | 欧美中文字幕在线播放 | 精品久久99 | 99久久精品国产自免费 | 久在线观看视频 | 亚洲综合在线视频 | 国产精品果冻麻豆精东天美 | 欧美电影大全 | 国产++欧洲韩国野花视频 | 亚洲 欧美 日韩 在线 | a级毛片高清免费视频 | 在线观看视频亚洲 | 国产精品美女久久久久aⅴ国产馆 | 婷婷精品国产亚洲AV在线观看 | 国内精品久久久久久久久久久久 | 欧美笫一页| 天天夜夜人人 | 精品日韩欧美一区二区三区在线播放 | 91嫩草国产线免费观看 | 久久久久久久国产精品影院 | 岛国色情A片无码视频免费看 | 国产精品九九久久99视频 | 亚洲一本| 一级做a | 一级毛片 在线播放 | 涩涩操|