Android--用户定位

用户定位(一)

User Location 和Google Maps是导航软件的基础,并不能用来做,

GPS 美国摩托罗拉公司,民用的定位在在20米左右。

电信:信号接受塔,

1、User Location能用来做什么?

  1. 获取用户的位置
  2. 追踪用户的移动

2、User Locaiton的两个关键的API

Location Manager:用于管理Android的用户定位服务

Location Providers:提供三种定位方式,有两种是最常见的,

  GPS 定位 :android.permission.ACCESS_FINE_LOCATION

  NETWORK定位:信号接受塔和wifi的接收点进行定位,android.permission.ACCESS_FINE_LOCATION(相对精确) 或者是android.permission.ACCESS_COARSE_LOCATION(不精确)

  Passive定位:被动的定位,用的不多

3、获取用户的当前位置(最常用)

三、实现的一般步骤:

  1、在AndroidManifest.xml里定义权限

  2、获取LocationManager对象

  3、选择LocationProvider

  4、绑定LocationListener对象(位置移动时会触发某个时间)

四、代码参考:

  AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="max.userLocation"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".UserLocation"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

userLocation.java

package max.userLocation;

import android.app.Activity;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class UserLocation extends Activity {
    /** Called when the activity is first created. */
    Button userLocationBtn = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        userLocationBtn = (Button) findViewById(R.id.buttonId);
        userLocationBtn.setOnClickListener(new userLocationBtnListener());
    }
    class userLocationBtnListener implements OnClickListener {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            LocationManager locationManager = (LocationManager) MainActivity.this.getSystemService(Context.LOCATION_SERVICE);            定义当前使用的定位方式,一个是时间(多长时间来更新位置,只是一个参考值),一个是距离(最小距离)。绑定监听器。
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new userLocationListener());
        }
    }
    class userLocationListener implements LocationListener {
     //当设备的位置发生改变就会调用这个方法 度 分 秒 double类型的
        @Override
        public void onLocationChanged(Location location) {
            // TODO Auto-generated method stub
            System.out.println("经度:" +location.getLongitude());
            System.out.println("纬度:" +location.getLatitude());

        }

        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub

        }
        //
        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub

        }
        //当状态改变的时候
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub

        }
    }
}

4、使用DDMS模拟定位

模拟器是没有GPS效果的,但是有方法。

时间: 2024-10-06 17:06:17

Android--用户定位的相关文章

Android之旅十五 android中的网络操作

android中的网络操作和java里面没有什么区别,java里面的很多网络操作方法都可以搬到android中去使用,主要几个点: 1.post和get请求的区别,大家可以在网上查阅有关资料进行了解,get主要以向地址中拼接字符串参数发送到服务器,长度有限制,并且请求参数暴露在地址栏中,不怎么安全:post则主要是将请求参数转换为相应的http协议请求体发送到服务器,相比get方式,参数的长度没有限制,并且参数信息不会暴露给用户: 2.我们在java web里面通过浏览器以post方式发送数据,

android-用户定位-&lt;十五&gt;

1.User Location 获取用户的位置 追踪用户的移动 2.User Location的API 1.LocationManager  :用于管理android的用户定位服务 2.LocationProvider :提供多种定位方式给开发者选择 3.LocationListener : 监听位置是否改变,provider是否可用或改变等信息 3.LocationProvider(定位方式的分类)   1.GPS定位: 使用GPS卫星进行定位,需要在清单文件中添加权限:android.per

Android学习笔记十五.深入理解fragment(三) 之《兼容多分辨率的应用》实战

深入理解fragment(三) 之<兼容多分辨率的应用>实战 在上一篇博文中介绍了如何使用Android Fragment开发适用于大屏幕应用,现在我们在上一个应用的基础上继续学习如何使用Fragment开发兼容多分辨率的应用. 1.建立/res/values-large/refs.xml引用资源文件 为了开发兼顾屏幕分辨率的应用,我们需要建立一个引用资源文件,专门用于定义各种引用项.refs.xml引用资源文件中定义了一项引用,其作用就是标明activity_book_list实际引用(@)

Android笔记(十五) Android中的基本组件——单选框和复选框

单选框和多选框通常用来在设置用户个人资料时候,选择性别.爱好等,不需要用户直接输入,直接在备选选项中选择,简单方便. 直接看代码: <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"

Android Studio第十五期 - 友盟统计集成

首先是官网的地址:http://dev.umeng.com/analytics/android-doc/integration#2_5 然后是注意实例化到Application中的代码:  private void setUMEngAnalsys() {   //开启Debug模式 上线可关闭   MobclickAgent.setDebugMode(true);   // SDK在统计Fragment时,需要关闭Activity自带的页面统计,   // 然后在每个页面中重新集成页面统计的代码

Android进阶(二十五)setTextColor()的参数设置方式

setTextColor()的参数设置方式 查了下资料发现setTextColor()的参数可以写成以下形式: 直接使用颜色值 setTextColor(0xFF0000FF);//0xFF0000FF是int类型的数据,分组一下0x|FF|0000FF,0x是代表颜色整数的标记,ff是表示透明度,0000FF表示颜色,注意:这里0xFF0000FF必须是8个的颜色表示,不接受0000FF这种6个的颜色表示. 使用系统自带的颜色类 setTextColor(android.graphics.Co

Android笔记二十五.Android事件Handler消息传递机制

因为Android平台不同意Activity新启动的线程訪问该Activity里的界面控件.这样就会导致新启动的线程无法动态改变界面控件的属性值.但在实际Android应用开发中,尤其是涉及动画的游戏开发中,须要让新启动的线程周期性地改变界面控件的属性值,这就须要借助Handler的消息传递机制实现. 一.Handler类简单介绍 1.功能 Handler类主要有两个作用 (1)在新启动的线程中发送消息; (2)在主线程中获取消息.处理消息.即当须要界面发生变化的时候.在子线程中调用Handle

Android笔记(六十五) android中的动画——属性动画(propertyanimation)

补间动画只能定义起始和结束两个帧在“透明度”.“旋转”.“倾斜”.“位移”4个方面的变化,逐帧动画也只能是播放多个图片,无法满足我们日常复杂的动画需求,所以谷歌在3.0开始,推出了属性动画(property animation) 属性动画已经不再是针对View来设计的了,也不仅限定于只能实现移动.缩放.淡入淡出这几种动画操作,同时也不再是一种视觉上的动画效果了.它实际上是一种不断的对值进行操作的机制,并将值赋值到指定对象的指定属性上,可以是任意对象的任意属性. ValueAnimator Val

Android设计模式(十五)--备忘录模式

在Android中用于保存Activity状态的onSaveInstanceState()和恢复Activity状态的onRestoreInstanceState(), 这种算不算是一种备忘录模式呢? 1.定义: 在不破坏封装的情况下,捕获对象的内部状态,并在对象之外保存这个状态,这样以后就可以恢复以后保存的状态: 2.使用: 备忘录模式,比较适合用于功能复杂,但是需要维护和纪录历史的类,或者是需要保存一个或者是多个属性的类, 在未来某个时段需要时,将其还原到原来纪录的状态: Originato

Android学习(十五) 系统服务

一.常用系统服务 后台Service在系统启动时被SystemService开启 1.MountService:监听是否有SD卡安装和移除. 2.ClipboardService:提供剪切板功能. 3.PackageManagerService:提供软件包的安装移除和查看. 4.电量.网络连接状态等等. 二.调用系统Service: getSystemService()方法:Activity的一个方法,用来获取系统服务对象,传入一个字符串,返回一个系统服务对象. 三.常用的系统服务: 传入的Na