加入收藏 | 设为首页 | 会员中心 | 我要投稿 江门站长网 (https://www.0750zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

达成的第一种 用GPS 定位的 代码

发布时间:2021-11-25 20:55:47 所属栏目:教程 来源:互联网
导读:package com.studio.Android.chp08.ex01; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.location.Criteria; import android.location.Location; import android.location.LocationListener

package com.studio.Android.chp08.ex01;  
  
  
import android.app.Activity;  
import android.content.Context;  
import android.content.Intent;  
import android.location.Criteria;  
import android.location.Location;  
import android.location.LocationListener;  
import android.location.LocationManager;  
import android.os.Bundle;  
import android.view.View;  
import android.widget.Button;  
import android.widget.TextView;  
  
public class CurrentLocation extends Activity {  
    /** Called when the activity is first created. */  
      
      
      private Location local=null;  
      private int i=0;  
        
     /**
     * LocationListener 是一个接口
     * new LocationListener() 去实例化这个接口
     * new LocationListener() {}对接口的方法进行实现
     *  
     * 整体而言是个 成员变量 复制语句,可以放到 前面去
     * 这个成员变量 是 LocationListener 类型
     */  
       private final LocationListener locationListener = new LocationListener() {  
            public void onLocationChanged(Location location) {  
                updateWithNewLocation(location);//地址改变   
                System.out.println("the onLocationChanged");  
            }  
            public void onProviderDisabled(String provider){  
                updateWithNewLocation(null);//地址失效   
                System.out.println("the onProviderDisabled");  
            }  
            public void onProviderEnabled(String provider){  
                System.out.println("the onProviderEnabled");  
                  
            }  
              
            public void onStatusChanged(String provider, int status,Bundle extras){   
                System.out.println("the onStatusChanged");  
                  
                  
            }  
        };  
  
          
        public Location getLocal() {  
            return local;  
        }  
      
      
        public void setLocal(Location local) {  
            this.local = local;  
        }  
      
      
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
              
              
            setContentView(R.layout.main);  //选择布局,用 main 里面的布局方式   
              
            Button btv=(Button)findViewById(R.id.GoSecond);  
              
            LocationManager locationManager;  
            String serviceName = Context.LOCATION_SERVICE;  
            locationManager = (LocationManager)getSystemService(serviceName);  
            String provider = LocationManager.GPS_PROVIDER;  
              
           
              
            Location location = locationManager.getLastKnownLocation(provider);  
              
            if(location!=null){  
                    this.setLocal(location);  
                   this.updateWithNewLocation(location);  
                  
                  
            }  
           
          
            locationManager.requestLocationUpdates(provider, 2000, 0,   
                    locationListener);//注册了监听器   
              
              
            btv.setOnClickListener(new View.OnClickListener(){  
      
                public void onClick(View v) {  
                    // TODO 实现这个接口的方法www.linuxidc.com  
                      
                    Intent intent = new Intent();  
                      
                    if(CurrentLocation.this.local!=null){  
                    //这个是海拔 啊 老兄    double alti=CurrentLocation.this.local.getAltitude();   
                          
                        double lati = CurrentLocation.this.local.getLatitude();  
                          
                        double logti=CurrentLocation.this.local.getLongitude();  
                          
                        intent.putExtra("Lati",lati);  
                        intent.putExtra("Lnti", logti);  
                    }  
                    intent.setClass(CurrentLocation.this, LocationName.class);     
                    startActivity(intent);     
                            
      
                }     
        
                     
            });     
        
              
              
        }  
         
          
        private void updateWithNewLocation(Location location) {  
              
            String latLongString;  
            TextView myLocationText;  
              
            myLocationText = (TextView)findViewById(R.id.myLocationText);  
            if (location != null) {  
                double lat = location.getLatitude();  
                double lng = location.getLongitude();  
                  
                this.setLocal(location);//更新 本类的location   
                System.out.println(" the lat is "+lat+"  the lng is "+lng);  
                  
                latLongString = "第  "+ ++i+" 次  更新    纬度是:" + lat + "n经度:" + lng;  
                  
            } else {  
                latLongString = "无法获取地理信息";  
            }  
              
            myLocationText.setText("您当前的位置是:n" +latLongString);  
        }  
}   
第二个界面 显示 地址解析的界面
 
manifest
 
package com.studio.android.chp08.ex01;  
  
import java.io.IOException;  
import java.util.List;  
import java.util.Locale;  
  
import android.app.Activity;  
import android.content.Intent;  
import android.location.Address;  
import android.location.Geocoder;  
import android.os.Bundle;  
import android.widget.TextView;  
  
/**
 *  
 * 得到具体的 地名www.linuxidc.com
 * @author Administrator
 *
 */  
  
public class LocationName extends Activity {  
    private   String  latLongString=null;  
      
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub   
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.addressname);  
          
        List<Address> addList = null;  
        Geocoder ge = new Geocoder(this,Locale.CHINA);  
        
        TextView  myLocationText=(TextView) findViewById(R.id.CityName);  
        Intent GetIntent=this.getIntent();  
          
          
        if(GetIntent==null){  
              
            System.out.println(" it is  null");  
        }  
          
        else if (GetIntent!=null){  
            System.out.println("it is not null");  
              
            double lati2=GetIntent.getDoubleExtra("Lati", 119.3090049);  
            double longti2=GetIntent.getDoubleExtra("Lnti", 26.0972567);  
          
              
              
            try {  
                addList = ge.getFromLocation(lati2,longti2, 1);  
            } catch (IOException e) {  
                // TODO Auto-generated catch block   
                e.printStackTrace();  
            }  
        }  
          
      
        if(addList!=null && addList.size()>0){  
            latLongString=new String();  
            for(int i=0; i<addList.size(); i++){  
                Address ad = addList.get(i);  
                latLongString += "n";  
               latLongString +=ad.getAddressLine(0)+ad.getAddressLine(1)+ad.getAddressLine(2);  
                  
       
            }  
          
        }  
          
        myLocationText.setText("您当前的位置是:n" +latLongString);  
  
  
    }  
      
      
      
  
}
xml
 
<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
      package="com.studio.android.chp08.ex01"  
      android:versionCode="1"  
      android:versionName="1.0.0">  
    <application android:icon="@drawable/icon" android:label="@string/app_name">  
        <activity android:name=".CurrentLocation"  
                  android:label="@string/app_name">  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
       <activity android:name=".LocationName"  
                  android:label="@string/app_name">  
        
        </activity>  
    </application>  
  
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>  
    <!--  uses-permission 用来权限说明的  -->  
</manifest>
address.xml
 
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout  
  xmlns:android="http://schemas.android.com/apk/res/android"  
  android:orientation="vertical"  
  android:layout_width="fill_parent"  
  android:layout_height="fill_parent">  
      
    <TextView  
      
     android:id="@+id/CityName"  
     android:layout_width="fill_parent"  
     android:layout_height="fill_parent"  
      
    />  
    <ListView   
      
    android:id="@+id/list"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    />  
</LinearLayout>  
main.xml
 
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    >    
    <!--  开始放组建  -->  
<TextView    
    android:id="@+id/myLocationText"  
    android:layout_width="fill_parent"   
    android:layout_height="wrap_content"   
      android:text="@string/hello"  
    />  
      
    <Button   
    android:id="@+id/getLocation"  
    android:layout_width="fill_parent"   
    android:layout_height="wrap_content"   
    android:text="@string/GetLocation"  
      
     />  
       
     <Button   
     android:id="@+id/GoSecond"  
       
     android:layout_width="fill_parent"   
     android:layout_height="wrap_content"   
       
     android:text="@string/GoSecond"  
     />  
</LinearLayout>  

(编辑:江门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读