android 位置服务 api
来源:互联网 发布:php文件管理代码 编辑:程序博客网 时间:2024/05/02 02:56
1、位置服务分几种?
答:
粗略定位和精确定位;
粗略定位主要是基于移动网网络 wfif,精确定位基于GPS。
如何在Android中使用GPS功能?
答:核心类,LocationManager,Location和LocationProvider。
获取GPS定位信息的通用步骤?
答:
1、获取系统的LocationManager对象
2、使用LocationManager,指定LocationProvider来获取定位信息,定位信息由Location表示
3、从Location对象中获取定位信息
demo:
//位置管理器LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);//可以用的的LocationProvider的名字List<String> names = locationManager.getAllProviders();for (String name : names) {Log.i("LOCATION", name);System.out.println(names);}
注:这里不需要任何权限。
NETWORK_PROVIDER,网络定位,包括利用基站和Wifi信号的定位方式;
PASSIVE_PROVIDER,被动,就是被动地等待其他应用更新位置;
GPS_PROVIDER,GPS定位,最靠谱的一种
如何获得符合指定条件的LocationProvider?
答:Criteria(条件,标准)
//位置管理器LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);//创建一个LocationProvider的过滤条件Criteria criteria=new Criteria();criteria.setCostAllowed(true);//免费//criteria.setAltitudeRequired(true);//提供高度信息//criteria.setBearingRequired(true);//方向List<String> names=locationManager.getProviders(criteria, false);for (String name : names) {Log.i("LOCATION", name);}
答:
需要权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>java代码:
package com.example.gpsdemo;import android.content.Context;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v7.app.ActionBarActivity;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;public class MainActivity extends ActionBarActivity {Location location;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if (savedInstanceState == null) {getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();}//位置管理器LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);//位置更新监听器locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 8,new LocationListener(){@Overridepublic void onLocationChanged(Location location) {// TODO Auto-generated method stubLog.i("LOCATION", location.getLatitude()+"-0");Log.i("LOCATION", location.getLongitude()+"-1");}@Overridepublic void onStatusChanged(String provider, int status,Bundle extras) {// TODO Auto-generated method stub}@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stub}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/** * A placeholder fragment containing a simple view. */public static class PlaceholderFragment extends Fragment {public PlaceholderFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;}}}
0 0
- android 位置服务 api
- Android笔记三十二.Android位置服务及核心API
- android位置服务
- Android的位置服务
- Android位置服务开发
- Android位置服务和Google地图API初解——名词解释
- android获取手机位置服务
- Android基于位置的服务
- Android 基于位置的服务
- Android之位置服务一
- Android之位置服务二
- Android之位置服务三
- Android之位置的服务
- Android API 指南 - 【服务 Service】
- 百度API获取位置范围内的周边服务
- 令人激动的Android位置相关API
- Android位置服务--百度定位,获取自己的位置
- Android中帐户服务部+位置服务
- Unicode编码下CString、char*、BSTR相互转换,char*、wchar_t*相互转换
- OpenCV编程->RGB直方图统计
- sql server 2005中如何查询一个数据库中有多少张表?
- iOS数组排序方法
- MySQL优化原则
- android 位置服务 api
- Android学习笔记(十七)——使用意图调用内置应用程序
- Android多线程研究(1)——线程基础及源码剖析
- dbus-glib笔记
- 正则表达式--模式修正符
- word "程序发送命令时出现问题”。
- 操作系统引论
- android 多媒体(图像,视频,音频)api
- 数据库连接错误