zoukankan      html  css  js  c++  java
  • 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.请检查网络连接 
    2.请打开我的位置", Toast.LENGTH_SHORT).show();
            }
        } 
    
    
    }
    
    
     添加访问网络权限
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  • 相关阅读:
    问题:Failed to execute goal org.apache.maven.plugins:mavencompilerplugin:3.5.1:compile (defaultcompile)
    STL容器的内存分配
    C++中的引用到底是什么
    解决eclipse无法解析shared_ptr
    Deleted pointer causes undefined behaviour
    诞生于饭桌上的jcSQL语言
    状压dp做题笔记
    TC做题笔记
    数据结构做题笔记
    POI做题笔记
  • 原文地址:https://www.cnblogs.com/liudeyun/p/android.html
Copyright © 2011-2022 走看看