首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android的用户定位-location施用

2012-12-28 
android的用户定位---location使用四个步骤:1.添加权限2.获取locationManager对象3.获取locationProvider4

android的用户定位---location使用

四个步骤:

1.添加权限

2.获取locationManager对象

3.获取locationProvider

4.绑定locationListener对象

?

?

首先在Manifest.xml中添加权限

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> //此为高精度--GPS定位选择

?

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>//此为精度一般--NetWork 定位可选上下2个

?

代码:

package com.example.location1;import android.location.Criteria;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.EditText;public class Loaction extends Activity {EditText et1;EditText et2;Button bt;LocationManager lm;LocationListener listener;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                et1 = (EditText) findViewById(R.id.et1);        et2 = (EditText) findViewById(R.id.et2);        bt = (Button) findViewById(R.id.bt);        bt.setText("绑定监听器");        bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {      //获得最适合的provider          Criteria cr = new Criteria();        //设置经度         cr.setAccuracy(Criteria.ACCURACY_FINE);        //是否需要提供海拔信息        cr.setAltitudeRequired(false);        //设置需要方向信息        cr.setBearingRequired(false);        //设置是否产生费用        cr.setCostAllowed(false);        //设置电量高低        cr.setPowerRequirement(Criteria.POWER_LOW);        //设置速度经度        cr.setSpeedRequired(false);lm = (LocationManager) Loaction.this.getSystemService(Context.LOCATION_SERVICE);//true 只在打开的provider中寻找 false 在所有的provider中寻找最合适的String provider = lm.getBestProvider(cr, false);System.out.println(provider);//---GPS 最合适的lm.requestLocationUpdates(provider, 0, 0, listener);}});              listener = new LocationListener() {@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onLocationChanged(Location location) {double lg = location.getLongitude();double la = location.getLatitude();et1.setText(lg+"");et2.setText(la+"");}};    }                @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main, menu);        return true;    }}

?

?

热点排行