android的用户定位---location使用
16lz
2021-01-25
四个步骤:
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; }}
更多相关文章
- 运行android程序访问网络,出错,需要加上权限
- Android: 启动init.rc 中service的权限问题
- Android程序如何升级
- Android(安卓)ApiDemos示例解析(42):App->Service->Remote Servic
- Android(安卓)四种绑定监听事件的方式
- 拆解Google Play Services 4.4,猜想Google I/O 2014的新动向,Andro
- Android(安卓)Vibrator 的用法
- Android(安卓)后台截图
- android 中间件开发