日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中GPS简介及其应用

發(fā)布時(shí)間:2024/3/12 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中GPS简介及其应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

隨時(shí)隨地技術(shù)實(shí)戰(zhàn)干貨,獲取項(xiàng)目源碼、學(xué)習(xí)資料,請關(guān)注源代碼社區(qū)公眾號(ydmsq666)

GPS是Global Positioning System(全球定位系統(tǒng))的簡稱,它的作用就是為全球的物體提供定位功能。GPS定位是一門高新技術(shù),但對于Android程序員來說,開發(fā)GPS功能的應(yīng)用程序又十分簡單,Android為此提供LocationManager類及其他幾個(gè)輔助類,開發(fā)人員可以非常方便地開發(fā)出GPS應(yīng)用。在程序中,通過getSystemService獲得LocationManager對象之后,就可以調(diào)用LocationManager提供的常用方法:

在上面方法中涉及另一個(gè)重要的類:LocationProvider(定位提供者),就是GPS定位組件的抽象表示,它提供了如下方法來獲取定位組件的相關(guān)信息:

另外,GPS支持還涉及到另一個(gè)類:Location,它是一個(gè)代表位置信息的抽象類,它提供如下方法來獲取定位信息:

另外,在獲取LocationProvider時(shí),往往需要加上過濾條件,即Criteria,Criteria提供如下方法來設(shè)置過濾條件:

使用上面三個(gè)類及其提供的方法就可以獲取GPS定位信息了,步驟如下:
1、獲取系統(tǒng)的LocationManager對象。
2、使用LocationManager,通過指定LocationProvider來獲取定位信息,定位信息由對象Location表示。
3、從Location對象中獲取定位信息。

下面用一個(gè)簡單的示例來演示,根據(jù)不同方式獲取LocationProvider定位信息,代碼如下:

Activity:

package com.home.locationprovider;import java.util.ArrayList; import java.util.List;import android.app.Activity; import android.content.Context; import android.location.Criteria; import android.location.LocationManager; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView;public class LocationProviderTestActivity extends Activity {private ListView listView;private LocationManager locationManager;// 存放LocationProvider名稱的集合private List<String> providerNames = new ArrayList<String>();private ArrayAdapter<String> adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);listView = (ListView) findViewById(R.id.main_lv_show);// 獲取系統(tǒng)的LocationManager對象locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);}public void click(View v) {if (v.getId() == R.id.main_btn_get_all) {// 獲取系統(tǒng)所有的LocationProvider的名稱providerNames = locationManager.getAllProviders();adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, providerNames);listView.setAdapter(adapter);}if (v.getId() == R.id.main_btn_get_criteria) {// 創(chuàng)建一個(gè)LocationProvider的過濾條件Criteria criteria = new Criteria();// 設(shè)置要求LocationProvider必須使免費(fèi)的criteria.setCostAllowed(false);// 設(shè)置要求LocationProvider能提供高度信息criteria.setAltitudeRequired(true);// 設(shè)置要求LocationProvider能提供方向信息criteria.setBearingRequired(true);// 獲取系統(tǒng)所有符合條件的LocationProvider的名稱providerNames = locationManager.getProviders(criteria, true);adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, providerNames);listView.setAdapter(adapter);}if (v.getId() == R.id.main_btn_get_byname) {providerNames.clear();// 根據(jù)名稱獲取指定的LocationProvider的名稱providerNames.add(locationManager.getProvider(LocationManager.GPS_PROVIDER).getName());adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, providerNames);listView.setAdapter(adapter);}} }

布局XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><Buttonandroid:id="@+id/main_btn_get_all"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="click"android:text="獲取所有LocationProvider" /><Buttonandroid:id="@+id/main_btn_get_criteria"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="click"android:text="根據(jù)條件獲取LocationProvider" /><Buttonandroid:id="@+id/main_btn_get_byname"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="click"android:text="獲取指定的LocationProvider" /><ListViewandroid:id="@+id/main_lv_show"android:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout>

權(quán)限:

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

附上圖片效果:



?

總結(jié)

以上是生活随笔為你收集整理的Android中GPS简介及其应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。