package com.android.antking.gps;
002
003 import android.app.Activity;
004 import android.content.Context;
005 import android.location.Criteria;
006 import android.location.Location;
007 import android.location.LocationListener;
008 import android.location.LocationManager;
009 import android.os.Bundle;
010 import android.util.Log;
011 import android.widget.TextView;
012 import android.widget.Toast;
013
014 public class GPSActivity extends Activity {
015 //声明位置管理对象
016 private LocationManager locationManager;
017 //声明位置监听对象
018 private LocationListener locationListener;
019 //声明字符串变量
020 String locationprovider;
021 //声明显示文本视图组建
022 private TextView textview;
023 /** Called when the activity is first created. */
024 @Override
025 public void onCreate(Bundle savedInstanceState) {
026 super.onCreate(savedInstanceState);
027 setContentView(R.layout.main);
028 //获得文本视图
029 textview = (TextView)this.findViewById(R.id.textView1);
030 try{
031 //新建Criteria类
032 Criteria locationcriteria = new Criteria();
033 //设置精确精度
034 locationcriteria.setAccuracy(Criteria.ACCURACY_FINE);
035 //不提供海拔高度信息
036 locationcriteria.setAltitudeRequired(false);
037 //不提供方向信息
038 locationcriteria.setBearingRequired(false);
039 //允许运营商计费
040 locationcriteria.setCostAllowed(true);
041 //设置电池消耗为低耗费
042 locationcriteria.setPowerRequirement(Criteria.POWER_LOW);
043 //使用getSystemService()方法获得位置管理器对象
044 locationManager
045 =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
046 //locationManager.setTestProviderEnabled("gps", true);
047 Toast.makeText(GPSActivity.this, "getSystemService", Toast.LENGTH_SHORT).show();
048 //检查gps功能开启
049 if(checkgps()){
050 locationprovider
051 =locationManager.getBestProvider(locationcriteria, true);
052 Log.d("provider", locationprovider);
053 //注册位置监听器
054 locationListener = new MyLocationListener();
055 locationManager.requestLocationUpdates(locationprovider, 1000, 0,locationListener);
056 }
057 }catch(Exception e){
058 Toast.makeText(GPSActivity.this, "异常错误"+e.toString(),Toast.LENGTH_LONG).show();
059 }
060
061 }
062 private class MyLocationListener implements LocationListener{
063 /**
064 * 若位置发生变化,onLocationChanged方法被调用
065 */
066 @Override
067 public void onLocationChanged(Location location) {
068 // TODO Auto-generated method stub
069 Log.i("位置发生变化", "Invoke");
070 if(location != null){
071 //获得经度
072 String latitude = Double.toString(location.getLatitude());//经度
073
074 //获得纬度
075
076 String longitude = Double.toString(location.getLongitude());//纬度
077 //在文本框中显示
078 textview = (TextView)GPSActivity.this.findViewById(R.id.textView1);
079 textview.setText("经度:"+longitude+"纬度"+latitude);
080 }
081 //locationManager.removeUpdates(this);
082 //locationManager.setTestProviderEnabled("gps", true);
083 }
084 //若屏蔽提供商,该方法被调用
085
086 @Override
087 public void onProviderDisabled(String provider) {
088 // TODO Auto-generated method stub
089 Log.i("屏蔽提供商", "Invode");
090 }
091 //若激活提供商,该方法被调用
092 @Override
093 public void onProviderEnabled(String provider) {
094 // TODO Auto-generated method stub
095 Log.i("激活提供商", "Invode");
096 }
097 //若状态发生变化,该方法被调用
098 @Override
099 public void onStatusChanged(String provider, int status, Bundle extras) {
100 // TODO Auto-generated method stub
101 Log.i("状态发生变化", "Invode");
102 }
103
104 }
105 private boolean checkgps(){
106 boolean providerEnabled
107 = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
108 //若被激活,则返回真值
109 if(providerEnabled ==true){
110 Toast.makeText(this, "Gps模块活动正常", Toast.LENGTH_SHORT).show();
111 return true;
112 }
113 else{
114 Toast.makeText(this, "请开启GPS", Toast.LENGTH_SHORT);
115 return false;
116 }
117
118 }
119
120 }
[代码] ndroidManifest.xml
01 <?xml version="1.0" encoding="utf-8"?>
02 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
03 package="com.android.antking.gps"
04 android:versionCode="1"
05 android:versionName="1.0">
06 <uses-sdk android:minSdkVersion="7" />
07 <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>
08 <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
09 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
10 <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
11 <application android:icon="@drawable/icon" android:label="@string/app_name">
12 <activity android:name=".GPSActivity"
13 android:label="@string/app_name">
14 <intent-filter>
15 <action android:name="android.intent.action.MAIN" />
16 <category android:name="android.intent.category.LAUNCHER" />
17 </intent-filter>
18 </activity>
19
20 </application>
21 </manifest>
android GPS定位
最新推荐文章于 2024-07-10 16:44:07 发布