android 获取当前位置

1. Android开发位置感知应用程序
方式:
1. GPS 定位     精确度高,仅适用于户外,严重消耗电量。
如果手机内置GPS接受模块,即使手机处于信号盲区,依然可以获取位置信息。

2. NETWORK_PROVIDER   网络定位,室内室外都可以使用,响应速度快,耗电量少。


下面演示 根据条件,自动选择最优的定位方式

package demo.map4;
import java.util.List; 
import android.app.Activity; 
import android.content.Context; 
import android.location.Criteria;
import android.location.Location; 
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;


/*


     获取当前位置信息
*/


public class Map4Activity extends Activity
{ 
    private TextView textView = null; 
    @Override
    public void onCreate(Bundle savedInstanceState)
    { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        textView = (TextView) findViewById(R.id.loc);
        LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        // 返回所有已知的位置提供者的名称列表,包括未获准访问或调用活动目前已停用的。
        List<String> lp = lm.getAllProviders();
        for (String item:lp)
        {
            Log.i("8023", "可用位置服务:"+item); 
        }


        Criteria criteria = new Criteria();  
        criteria.setCostAllowed(false); 
//设置位置服务免费 
        criteria.setAccuracy(Criteria.ACCURACY_COARSE); //设置水平位置精度
         //getBestProvider 只有允许访问调用活动的位置供应商将被返回
        String  providerName =         lm.getBestProvider(criteria, true);
        Log.i("8023", "------位置服务:"+providerName);



        if (providerName != null)
        {        
            Location location = lm.getLastKnownLocation(providerName);
            Log.i("8023", "-------"+location);    
             //获取维度信息
            double latitude = location.getLatitude();
            //获取经度信息
            double longitude = location.getLongitude();
            textView.setText("定位方式: "+providerName+"  维度:"+latitude+"  经度:"+longitude);   
        }
        else
        {
              Toast.makeText(this, "1.请检查网络连接 \n2.请打开我的位置", Toast.LENGTH_SHORT).show();
        }
    } 


}


 添加访问网络权限
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 

posted @ 2013-10-07 15:18  ldy592  阅读(6158)  评论(0编辑  收藏  举报