編輯:關於Android編程
在androi中GPS信息的獲取可以通過系統提供的LOCATION_SERVICE中的GPS_PROVIDER獲取
[java]
LocationManager GpsManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
Location location = GpsManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
其中Location 中比較常用的信息有:
[java]
/*
location.getAccuracy(); 精度
location.getAltitude(); 高度 : 海拔
location.getBearing(); 導向
location.getSpeed(); 速度
location.getLatitude(); 緯度
location.getLongitude(); 經度
location.getTime(); UTC時間 以毫秒計
*/
GPS信息主要通過注冊回調函數,設定限定條件讓系統服務主動通知,限定條件有以下兩種
1.距離: 當移動距離超過設定值時系統會主動通知 以米記
2.時間:當時間超過設定值時系統會主動通知 以豪秒記
[java]
GpsManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10, new GpsLocationListener());
這裡設定的是1秒鐘,10米為限定條件
以下給出具體的實例:
1.在布局文件中增加一個顯示具體信息的文本 (activity_wifi_example.xml)
[html]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" >
<TextView
android:id="@+id/TextView_GpsInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</LinearLayout>
2.在代碼中注冊回調,設定好限制條件,實時刷新GPS狀態信息 (GpsExample.java)
[java]
package com.example.gpsexample;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class GpsExample extends Activity {
private final String TAG = "GpsExample";
private TextView mGpsInfo;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gps_example);
mGpsInfo = (TextView)this.findViewById(R.id.TextView_GpsInfo);
LocationManager GpsManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
Location location = GpsManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
printGpsLocation(location);
if( location == null ) {
mGpsInfo.setText("暫無GPS有效信息");
}
GpsManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10, new GpsLocationListener());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_gps_example, menu);
return true;
}
public void printGpsLocation(Location location)
{
if( location != null )
{
/*
location.getAccuracy(); 精度
location.getAltitude(); 高度 : 海拔
location.getBearing(); 導向
location.getSpeed(); 速度
location.getLatitude(); 緯度
location.getLongitude(); 經度
location.getTime(); UTC時間 以毫秒計
*/
mGpsInfo.setText("Accuracy : " + location.getAccuracy() +
"\nAltitude : " + location.getAltitude() +
"\nBearing : " + location.getBearing() +
"\nSpeed : " + location.getSpeed() +
"\nLatitude :" + location.getLatitude() +
"\nLongitude : " + location.getLongitude() +
"\nTime : " + location.getTime());
}
}
public class GpsLocationListener implements LocationListener
{
public void onLocationChanged(Location location) {
printGpsLocation(location);
}
public void onProviderDisabled(String provider) {
Log.d(TAG, "ProviderDisabled : " + provider);
}
public void onProviderEnabled(String provider) {
Log.d(TAG, "ProviderEnabled : " + provider);
}
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.d(TAG, "StatusChanged : " + provider + status);
}
}
}
3.最後在AndroidManifest.xml增加獲取GPS權限的支持
[html]
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
在Xamarin android如何調用百度地圖呢?首先我們要區分清楚,百度地圖這是一個廣泛的概念,很多剛剛接觸這個名詞”百度地圖api”,的確是
從零開始一步一步接入SDK 本篇博客想總結一下筆者在接入手游渠道SDK的一些經驗方法,為想接入手游渠道或者想學習如何接入SDK的童鞋們提供一個參考。本篇博客基於Andr
大家好,眾所周知,android裡兩個相同方向的ScrollView是不能嵌套的,那要是有這樣的需求怎麼辦?(這個需求一般都是不懂android的人提出來的)難道就真的不
直接給圖,一目了然!