亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android打開GPS導航并獲取位置信息返回null解決方案

2020-04-11 12:35:07
字體:
來源:轉載
供稿:網友

最近在做一個 Android 項目,需要用到GPS獲取位置信息,從 API 查了一下,發現獲取位置信息僅需極其簡單的一句即可:

復制代碼 代碼如下:

getLastKnownLocation(LocationManager.GPS_PROVIDER),

于是高興地不得了??墒且粚戇M代碼里,返回值(Location 類型)居然一直為null..郁悶的不得了。在網上查了好久,發現好多人都和我一樣糾結于這個問題上,有人說是因為GPS沒打開,也有人說是相關權限沒加上..可是我的明明已經在設置里打開,權限自然也加上了。在api上糾結了半天,終于找出原因了,原來要打開GPS其實在于這句:
 
復制代碼 代碼如下:
 
setTestProviderEnabled("gps",true);

而跟手機上的設置沒多大關系(起碼在我的手機上測是這樣的)。手機上的設置關閉了,這一句照樣能打開;而即使手機設置打開了,沒這一句也是白搭。與這句對應的是
 
復制代碼 代碼如下:
 
setTestProviderEnabled("gps",false);

用來關閉GPS.
GPS打開后可以用上面的方法獲取Location了嗎?還是不可以!確切地說是有時候可以,因為這個函數獲取的是上次已經獲得的位置信息,設想如果此程序第一次跑,先前并沒有獲取過位置信息,當然返回值為null了。經仔細查看api,在
復制代碼 代碼如下:

requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)

里發現了這樣一句話:It may take a while to receive the most recent location. If an immediate location is required, applications may use the getLastKnownLocation(String) method. 因此為了獲取位置信息,應該用此方法為manager設置監聽器,在監聽器中onLocationChanged(Location location)里獲取。
測試代碼如下:
復制代碼 代碼如下:

public void onLocationChanged(Location location)
            {
                Log.i("onLocationChanged", "come in");
                if (location != null)
                {
                    Log.w("Location","Current altitude = "+ location.getAltitude());
                    Log.w("Location","Current latitude = "+ location.getLatitude());
                }
            }
    

經過測試,經過一段時間后可以獲取Location(獲取時間與minTime、minDistance相關)。還需注意的一個問題是在設置了監聽器后,刪除監聽器之前不能用上面的方法關閉gps,否則會報錯。因此關閉gps的方法是
 
復制代碼 代碼如下:
 
manager.removeUpdates (listener);//listener 即為監聽器實例
manager.setTestProviderEnabled("gps",false);

以下是測試代碼,所需權限有:
復制代碼 代碼如下:

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

復制代碼 代碼如下:

import android.app.Activity;
 import android.content.Context;
 import android.location.Criteria;
 import android.location.Location;
 import android.location.LocationListener;
 import android.location.LocationManager;
 import android.os.Bundle;
 import android.util.Log;
 public class audio extends Activity
 {
     /** Called when the activity is first created. */
     LocationManager locationManager;
     LocationListener llistener;
     String provider;
     public void onCreate(Bundle savedInstanceState)
     {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         Criteria criteria = new Criteria();
         criteria.setAccuracy(Criteria.ACCURACY_FINE);
         criteria.setAltitudeRequired(false);
         criteria.setBearingRequired(false);
         criteria.setCostAllowed(true);
         criteria.setPowerRequirement(Criteria.POWER_LOW);
         String serviceName = Context.LOCATION_SERVICE;
         locationManager = (LocationManager) getSystemService(serviceName);
         locationManager.setTestProviderEnabled("gps", true);
         provider = locationManager.getBestProvider(criteria, true);
         Log.d("provider", provider);
         llistener = new LocationListener() {
             @Override
             public void onLocationChanged(Location location)
             {
                 // TODO Auto-generated method stub
                 Log.i("onLocationChanged", "come in");
                 if (location != null)
                 {
                     Log.w("Location", "Current altitude = "
                             + location.getAltitude());
                     Log.w("Location", "Current latitude = "
                             + location.getLatitude());
                 }
                 locationManager.removeUpdates(this);
                 locationManager.setTestProviderEnabled(provider, false);
             }
             @Override
             public void onProviderDisabled(String provider)
             {
                 // TODO Auto-generated method stub
                 Log.i("onProviderDisabled", "come in");
             }
             @Override
             public void onProviderEnabled(String provider)
             {
                 // TODO Auto-generated method stub
                 Log.i("onProviderEnabled", "come in");
             }
             @Override
             public void onStatusChanged(String provider, int status,
                     Bundle extras)
             {
                 // TODO Auto-generated method stub
                 Log.i("onStatusChanged", "come in");
             }
         };
          locationManager.requestLocationUpdates(provider, 1000, (float) 1000.0, llistener);
     }
     protected void onDestroy()
     {
         locationManager.removeUpdates(llistener);
         locationManager.setTestProviderEnabled(provider, false);
         super.onDestroy();
     }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产色av| 欧美裸体xxxx极品少妇| 国产成人在线一区二区| 欧美成人第一页| 亚洲欧美中文另类| 98视频在线噜噜噜国产| 亚洲精品wwww| 国产精品激情av在线播放| 欧美久久精品午夜青青大伊人| 国产精品亚发布| 欧美三级免费观看| 午夜精品久久久久久久男人的天堂| 69久久夜色精品国产69乱青草| 日韩av片永久免费网站| 日韩亚洲欧美中文在线| 日韩av免费在线播放| 国产精品99久久久久久久久久久久| 国产精品美女在线| 国产精品免费一区二区三区都可以| 菠萝蜜影院一区二区免费| 亚洲免费影视第一页| www欧美日韩| 亚洲伊人一本大道中文字幕| 最近2019中文字幕一页二页| 欧美丝袜一区二区三区| 91在线观看免费| 国产精品激情av在线播放| 久久伊人免费视频| 欧美日韩在线第一页| 日韩精品视频在线播放| 蜜臀久久99精品久久久无需会员| 久久99久久亚洲国产| 人妖精品videosex性欧美| 日产精品久久久一区二区福利| 亚洲女人天堂成人av在线| 国产香蕉精品视频一区二区三区| 亚洲国产精品一区二区三区| 亚洲第一页中文字幕| 国产91在线视频| 色综合久久久久久中文网| 亚洲最大成人免费视频| 69久久夜色精品国产69| 成人亚洲激情网| 亚洲影影院av| 综合久久五月天| 久久精品国产91精品亚洲| 欧美日韩一区二区在线| 亚洲电影免费观看高清完整版在线| 1769国内精品视频在线播放| 国产精品久久一区| 欧美视频国产精品| 91av视频在线播放| 成人av色在线观看| 久久深夜福利免费观看| 国产精品一区二区三区久久| 一本大道亚洲视频| 国产在线精品一区免费香蕉| 疯狂欧美牲乱大交777| 亚洲欧美在线第一页| 国产高清在线不卡| 亚洲第一黄色网| 久久综合网hezyo| 国产精品91免费在线| 激情成人中文字幕| 成人有码在线播放| 欧美一区二三区| 午夜精品一区二区三区av| 国产mv久久久| 国语自产偷拍精品视频偷| 热99精品只有里视频精品| 2018国产精品视频| 日韩欧美精品在线观看| 国产日韩欧美视频在线| 久久久久国产一区二区三区| 欧美日韩一区二区在线| 欧美成aaa人片在线观看蜜臀| 91在线精品视频| 欧美综合国产精品久久丁香| 欧美成人精品在线视频| 久久亚洲电影天堂| 68精品久久久久久欧美| 亚洲一区二区三区乱码aⅴ| 成人午夜一级二级三级| 欧美日产国产成人免费图片| 国产美女主播一区| 高清一区二区三区日本久| 成人久久久久爱| 亚洲www永久成人夜色| 社区色欧美激情 | 91高清视频免费观看| 亚洲人成网在线播放| 久久精品国产清自在天天线| 色偷偷亚洲男人天堂| 欧美性猛交xxxx乱大交极品| 亚洲人免费视频| 亚洲性日韩精品一区二区| 国产欧美精品xxxx另类| 久久久久999| 久久精彩免费视频| 欧美富婆性猛交| 亚洲综合社区网| 国产一区二区精品丝袜| 欧美精品videos另类日本| 色伦专区97中文字幕| 日韩精品丝袜在线| 亚洲美女喷白浆| 92看片淫黄大片欧美看国产片| 中文字幕成人精品久久不卡| 国产成人精品一区二区| 欧美另类极品videosbestfree| 国内免费久久久久久久久久久| 色哟哟网站入口亚洲精品| 国产精品视频午夜| 欧美成aaa人片免费看| 亚洲第一色中文字幕| 在线视频免费一区二区| 一区二区三区国产视频| 欧美在线视频播放| 亚洲美女在线视频| 日韩中文字幕在线免费观看| 欧美日韩美女在线观看| 亚洲天堂av综合网| 久久久午夜视频| 久久久精品视频在线观看| 亚洲人成在线一二| 欧美亚洲在线播放| 亚洲欧洲日韩国产| 日韩精品久久久久久福利| 精品久久久久久久中文字幕| 色哟哟网站入口亚洲精品| 国产欧美精品日韩精品| 国产精品十八以下禁看| 日韩在线观看免费网站| 欧美性高潮在线| 最近2019中文免费高清视频观看www99| 91亚洲精品一区| 亚洲韩国日本中文字幕| 国内免费久久久久久久久久久| 国产日本欧美一区二区三区| 亚洲区在线播放| 中文字幕不卡在线视频极品| 久久国产精品久久久久久久久久| 日韩电影免费观看中文字幕| 欧美日韩在线免费观看| 国产精品免费观看在线| 精品无人区太爽高潮在线播放| 欧洲一区二区视频| 欧美极度另类性三渗透| 亚洲成人国产精品| 欧美日韩亚洲国产一区| 91国产视频在线| 亚洲欧美第一页| 久久视频精品在线| 中文字幕亚洲欧美日韩在线不卡| 欧美亚洲国产视频小说| 美女福利视频一区| 最好看的2019的中文字幕视频| 久久国产精品久久久| 欧美日韩激情网| 欧美久久久精品| 欧美一区视频在线| 亚洲成色777777在线观看影院| 97香蕉超级碰碰久久免费软件| 欧美日韩在线免费观看|