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" />









  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值