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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM