android GPS定位

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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值