Android GPS定位

c6b4 9年前發布 | 2K 次閱讀 Java Android GPS

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;
import android.widget.TextView;
import android.widget.Toast;

public class GPSActivity extends Activity { //聲明位置管理對象 private LocationManager locationManager; //聲明位置監聽對象 private LocationListener locationListener; //聲明字符串變量 String locationprovider; //聲明顯示文本視圖組建 private TextView textview; /* Called when the activity is first created. / @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //獲得文本視圖 textview = (TextView)this.findViewById(R.id.textView1); try{ //新建Criteria類 Criteria locationcriteria = new Criteria(); //設置精確精度 locationcriteria.setAccuracy(Criteria.ACCURACY_FINE); //不提供海拔高度信息 locationcriteria.setAltitudeRequired(false); //不提供方向信息 locationcriteria.setBearingRequired(false); //允許運營商計費 locationcriteria.setCostAllowed(true); //設置電池消耗為低耗費 locationcriteria.setPowerRequirement(Criteria.POWER_LOW); //使用getSystemService()方法獲得位置管理器對象 locationManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE); //locationManager.setTestProviderEnabled("gps", true); Toast.makeText(GPSActivity.this, "getSystemService", Toast.LENGTH_SHORT).show(); //檢查gps功能開啟 if(checkgps()){ locationprovider =locationManager.getBestProvider(locationcriteria, true); Log.d("provider", locationprovider); //注冊位置監聽器 locationListener = new MyLocationListener(); locationManager.requestLocationUpdates(locationprovider, 1000, 0,locationListener); } }catch(Exception e){ Toast.makeText(GPSActivity.this, "異常錯誤"+e.toString(),Toast.LENGTH_LONG).show(); }

}
private class MyLocationListener implements LocationListener{
     /**
      * 若位置發生變化,onLocationChanged方法被調用
      */
    @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
        Log.i("位置發生變化", "Invoke");
        if(location != null){
            //獲得經度
            String latitude = Double.toString(location.getLatitude());//經度

            //獲得緯度

           String longitude = Double.toString(location.getLongitude());//緯度
            //在文本框中顯示
           textview = (TextView)GPSActivity.this.findViewById(R.id.textView1);
            textview.setText("經度:"+longitude+"緯度"+latitude);
        }
        //locationManager.removeUpdates(this);
        //locationManager.setTestProviderEnabled("gps", true);
    }
     //若屏蔽提供商,該方法被調用

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub
        Log.i("屏蔽提供商", "Invode");
    }
    //若激活提供商,該方法被調用
    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub
        Log.i("激活提供商", "Invode");
    }
   //若狀態發生變化,該方法被調用
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub
        Log.i("狀態發生變化", "Invode");
    }

}
private boolean checkgps(){
    boolean providerEnabled
     = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    //若被激活,則返回真值
    if(providerEnabled ==true){
        Toast.makeText(this, "Gps模塊活動正常", Toast.LENGTH_SHORT).show();
        return true;
    }
    else{
        Toast.makeText(this, "請開啟GPS", Toast.LENGTH_SHORT);
        return false;
    }

}

}</pre>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.antking.gps"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".GPSActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

 本文由用戶 c6b4 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!