1. 程式人生 > >Android開發獲取GPS位置,包含基站\wifi\gps 幾種方法

Android開發獲取GPS位置,包含基站\wifi\gps 幾種方法

1.gps定位: 優點:最簡單的手機定位方式當然是通過GPS模組(現在大部分的智慧機應該都有了)。GPS方式準確度是最高的 缺點1.比較耗電;        2.絕大部分使用者預設不開啟GPS模組;        3.從GPS模組啟動到獲取第一次定位資料,可能需要比較長的時間;        4.室內幾乎無法使用。 這其中,缺點2,3都是比較致命的。需要指出的是,GPS走的是衛星通訊的通道,在沒有網路連線的情況下也能用。 有網路、室內不可用、定位時間長、位置精確 2.基站定位 大致思路就是採集到手機上的基站ID號(cellid)和其它的一些資訊(MNC,MCC,LAC等等),然後通過網路訪問一些定位服務,獲取 並返回對應的經緯度座標。基站定位的精確度不如GPS,好處是能夠在室內用,只要網路通暢就行。 有網路 室內可用 定位方式不精確 3.WIFI定位 和基站定位類似,這種方式是通過獲取當前所用的wifi的一些資訊,然後訪問網路上的定位服務以獲得經緯度座標。因為它和基站定位其實都需要使 用網路,所以在Android也統稱為Network方式。 與基站定位類似 4.AGPS定位
最後需要解釋一點的是AGPS方式。很多人將它和基站定位混為一談,但其實AGPS的本質仍然是GPS,只是它會使用基站資訊對獲取GPS進行輔助,然後 還能對獲取到的GPS結果進行修正,所以AGPS要比傳統的GPS更快,準確度略高。 有網路、類似gps定位、但比傳統Gps定位更快,準確度略高 第二部分: locationManager.getLastKnownLocation()總是會出現取不到資料的情況,所以這裡沒有使用這個方法,避免 了取不到資料的問題 第三部分:使用非同步載入,提高效能 ================================程式碼===========================

\

  \

1.Activity

  1. package com.example.gpsdemo;    
  2. import com.example.gpsdemo.util.GetLocation;    
  3. import com.example.gpsdemo.util.LMLocation;    
  4. import android.app.Activity;    
  5. import android.app.AlertDialog;    
  6. import android.app.ProgressDialog;    
  7. import android.os.Bundle;    
  8. import android.view.View;    
  9. import android.view.View.OnClickListener;    
  10. import android.widget.Button;    
  11. import android.widget.TextView;    
  12. publicclass MainActivity extends Activity {    
  13.     LMLocation lmLocation;    
  14.     TextView textView;    
  15.     public MainActivity instance;    
  16.     private
     AlertDialog dialog;    
  17.     @Override
  18.     publicvoid onCreate(Bundle savedInstanceState) {    
  19.         super.onCreate(savedInstanceState);    
  20.         setContentView(R.layout.activity_main);    
  21.         textView = (TextView) findViewById(R.id.textView2);    
  22.         instance = this;    
  23.         dialog = new ProgressDialog(MainActivity.this);    
  24.         dialog.setTitle("請稍等...");    
  25.         dialog.setMessage("正在定位...");    
  26.         Button button = (Button) findViewById(R.id.button1);    
  27.         button.setOnClickListener(new OnClickListener() {    
  28.             @Override
  29.             publicvoid onClick(View v) {    
  30.                 // TODO Auto-generated method stub
  31.                 new GetLocation(dialog, textView, instance).DisplayLocation();    
  32.             }    
  33.         });    
  34.     }    
  35. }    

2.與MainActivity對應的佈局
  1. <xmlns:toolsxmlns:tools="http://schemas.android.com/tools"
  2.     android:layout_width="match_parent"
  3.     android:layout_height="match_parent">
  4.        <android:idandroid:id="@+id/textView2"
  5.         android:layout_width="wrap_content"
  6.         android:layout_height="wrap_content"
  7.         android:layout_centerHorizontal="true"
  8.         android:layout_centerVertical="true"
  9.         android:padding="@dimen/padding_medium"
  10.         android:text="@string/hello_world"
  11.         tools:context=".MainActivity"/>
  12.         <android:idandroid:id="@+id/button1"
  13.         android:layout_width="wrap_content"
  14.         android:layout_height="wrap_content"
  15.         android:layout_alignParentTop="true"
  16.         android:layout_alignRight="@+id/textView2"
  17.         android:layout_marginRight="52dp"
  18.         android:text="定位"/>

3.AndroidManifest.xml
  1. package="com.example.gpsdemo"
  2.     android:versionCode="1"
  3.     android:versionName="1.0" >
  4.     <uses-sdk< li="">
  5.         android:minSdkVersion="8"
  6.         android:targetSdkVersion="15" />
  7.     <application< li="">
  8.         android:icon="@drawable/ic_launcher"
  9.         android:label="@string/app_name"
  10.         android:theme="@style/AppTheme" >
  11.         <activity< li="">
  12.             android:name=".MainActivity"
  13.             android:label="@string/title_activity_main" >
4.工具類兩個:(1)
  1. package com.example.gpsdemo.util;    
  2. import android.app.AlertDialog;    
  3. import android.content.Context;    
  4. import android.os.AsyncTask;    
  5. import android.util.Log;    
  6. import android.widget.TextView;    
  7. publicclass GetLocation {    
  8.     AlertDialog dialog;    
  9.     TextView textView;    
  10.     Context context;    
  11.     public GetLocation(AlertDialog dialog, TextView textView, Context context) {    
  12.         this.dialog = dialog;    
  13.         this.textView = textView;    
  14.         this.context = context;    
  15.     }    
  16.     publicvoid DisplayLocation() {    
  17.         new AsyncTask() {    
  18.             @Override
  19.             protected String doInBackground=\'#\'"    
  20.                 LMLocation location = null;    
  21.                 try {    
  22.                     location = new GPSLocation().getGPSInfo(context);    
  23.                 } catch (Exception e) {    
  24.                     // TODO Auto-generated catch block
  25.                     e.printStackTrace();    
  26.                 }    
  27.                 if (location == null)    
  28.                     returnnull;    
  29.                 Log.d("debug", location.toString());    
  30.                 return location.toString();    
  31.             }    
  32.             @Override
  33.             protectedvoid onPreExecute() {    
  34.                 dialog.show();    
  35.                 super.onPreExecute();    
  36.             }    
  37.             @Override
  38.             protectedvoid onPostExecute(String result) {    
  39.                 if (result == null) {    
  40.                     textView.setText("定位失敗了...");    
  41.                 } else {    
  42.                     textView.setText(result);    
  43.                 }    
  44. 相關推薦

    Android開發獲取GPS位置包含基站\wifi\gps 方法

    1.gps定位: 優點:最簡單的手機定位方式當然是通過GPS模組(現在大部分的智慧機應該都有了)。GPS方式準確度是最高的 缺點1.比較耗電;        2.絕大部分使用者預設不開啟GPS模組;        3.從GPS模組啟動到獲取第一次定位資料,可能需要比較長的時間;       

    Android開發獲取GPS位置包含apn\wifi\gps 方法

    1.gps定位: 優點:最簡單的手機定位方式當然是通過GPS模組(現在大部分的智慧機應該都有了)。GPS方式準確度是最高的 缺點1.比較耗電;        2.絕大部分使用者預設不開啟GPS模組;        3.從GPS模組啟動到獲取第一次定位資料,可能需要比較長的時間;        4.室內幾乎

    android 自定義view時實現動起來的方法

    前言 在自定義view時如何讓她動起來呢?本人在14年面世的時候就被問到了listview下拉重新整理時,如何下拉如何上移,還記得本人當初的答案是使用屬性動畫,被人好好的鄙視了一番,說多了,好了拔劍吧 offsetLeftAndRight(offsetX)

    Android 開發獲取View檢視的寬和高的方法

    一、根據WindowManager管理器獲得 1)這兩種方法在螢幕未顯示的時候,還是處於0的狀態,即要在setContentView呼叫之後才有效。 2)Activity必須如此設定才能獲得view

    【JS】深拷貝與淺拷貝的區別實現深拷貝的方法

    如何區分深拷貝與淺拷貝,簡單點來說,就是假設B複製了A,當修改A時,看B是否會發生變化,如果B也跟著變了,說明這是淺拷貝,拿人手短,如果B沒變,那就是深拷貝,自食其力。 此篇文章中也會簡單闡述到棧堆,基本資料型別與引用資料型別,因為這些概念能更好的讓你理解深拷貝與淺拷貝。 我們來舉個淺拷貝例

    Android中使用非同步執行緒更新UI檢視的方法

    在Android中子執行緒是不能更新ui的。 所以我們要通過其他方式來動態改變ui檢視, 1、runOnUiThreadactivity提供的一個輕量級更新ui的方法,在Fragment需要使用的時候要用getActivity.runOnUiThread開啟執行緒 這種方法最簡單,方便更新一些不需要判斷的

    C/C++ 中 int 轉 stringstring 轉 int 的方法

    C int 轉 string sprintf int a = 1; char strDst[256] = {0}; sprintf_s(strDst,256,"%d",a); itoa int

    java後臺list集合傳值到前臺再取值的方法

    1.在jsp頁面中巢狀 java程式碼: 首先jsp頁面中匯入java的工具類 <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEnco

    Android實現截圖和截長圖功能的方法

    一般情況下各種型號的手機都會有自帶的截圖功能,也會有諸如“開關機鍵+音量鍵”的截圖快捷鍵,只要手機是亮屏狀態,都會將手機螢幕的可視區域(包含狀態列)全部擷取下來。如果開發中想要調取系統的截圖功能,理論上講是可以的,需要在APK中呼叫“adb shell screencap -

    Python通過正則表示式獲取,去除(過濾)或者替換HTML標籤的方法(本文由169it.com蒐集整理)

    python正則表示式關鍵內容: python正則表示式轉義符: . 匹配除換行符以外的任意字元 \w 匹配字母或數字或下劃線或漢字 \s 匹配任意的空白符 \d 匹配數字 \b 匹配單詞的開始或結束 ^ 匹配字串的開始 $ 匹配字串的結束 \W 匹配任意不是字母,數字

    php獲取請求url時響應的報頭資訊方法

        1、用file_get_contents或者fopen、file、readfile等函式讀取url的時候,會建立一個名 為$http_response_header的變數來儲存http響應的報頭.     示例程式碼一: <?php $url

    Python判斷一個字串是否包含子串的方法

    1.使用成員操作符 in >>> s='nihao,shijie' >>> t='nihao' >>> result = t in s >

    檢視基於Android 系統單個程序記憶體和CPU使用情況的方法

    Total PSS by OOM adjustment:     16839 kB: System                16839 kB: system (pid 791)      9279 kB: Persistent                 9279 kB: com.android.s

    面試官:CPU百分百!給你一分鐘怎麼排查?有方法

    Part0 遇到了故障怎麼辦? 在生產上,我們會遇到各種各樣的故障,遇到了故障怎麼辦? 不要慌,只有冷靜才是解決故障的利器。 下面以一個例子為例,在生產中碰到了CPU 100%的問題怎麼辦? 在生產中真的碰到了CPU 100%的問題,再來看這篇文章已經遲了,還是先來模擬演練下吧。 怎麼模擬演練? (1)查詢資

    html 5獲取GPS位置Google地圖顯示

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    Android WIFI開發包含開啟WIFI掃描列表。 自動連線指定WIFI等

    本文章是在原文基礎上進行開發,,修改的 ,原文地址如下: https://www.cnblogs.com/pied/p/3767336.html 開發中專案如下: package stu.edu.cn.myapplication; import android.content.Conte

    微信開發獲取地理位置例項(java非常詳細附工程原始碼)

    在本篇部落格之前,博主已經寫了4篇關於微信相關文章,其中三篇是本文基礎: 1、微信開發之入門教程,該文章詳細講解了企業號體驗號免費申請與一些必要的配置,以及如何呼叫微信介面。 2、微信開發之通過代理除錯本地專案,該文章詳細講解了如何除錯本地專案,使用工具的詳細安裝與配置。

    HTML5頁面直接調用百度地圖API,獲取當前位置直接導航目的地(轉)

    wid dir tle mark utf-8 mil 獲取 open init HTML5頁面直接調用百度地圖API,獲取當前位置,直接導航目的地 我是應用在微信中,自定義菜單,菜單直接鏈接到這個HTML5頁面,獲取當前位置後,頁面中定好目的地,這樣打開頁面後直接進入導航頁

    基於HTML5的Geolocation獲取地理位置配合Google Map API反向地址解析(獲取用戶真實地址)

    add current 經緯度 cati arr offset 類型 html maps 基於HTML5的Geolocation獲取地理位置,配合Google Map API反向地址解析(獲取用戶真實地址) html 1 <!DOCTYPE html>

    android開發-獲取wifi列表

    inline fim date conn port ats htm 有效 width 近期博主在學frangment框架,因此想著想著就想通過listfragment完畢對wifi列表的獲取。 好!如今就不說廢話了。 一.