技术开发 频道

OPhone OS上的位置服务

  2、在AndroidManifest.xml文件里面加上以下的权限

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

  3、通过LocationListener来获得位置

  LocationManager是整个Location Services的核心类,通过getSystemService(Context.LOCATION_SERVICE)来获得LocationManager的对象。

import android.location.*;
private LocationManager mService;
private LocationListener mListener = new LocationListener()
{
    
// 底层获得的位置会通过这个接口上报给应用
    
public void onLocationChanged(Location location)
    {
    }
    
    
// 如果GPS/A-GPS没有使能会通过这个接口通知应用
    
public void onProviderDisabled(String provider)
    {
    }
    
// GPS/A-GPS使能的时候应用也会得到通知
    
public void onProviderEnabled(String provider)
    {
    }
    
// 位置服务状态的变化通过这个接口上报
    
public void onStatusChanged(String provider, int status, Bundle extras)
    {
    }
}

// LocationManager是一个系统服务,必须通过getSystemService来获得
mService
= (LocationManager)getSystemService(Context.LOCATION_SERVICE);
try {
    
// 请求使用GPS,应用需要处理抛出的以下异常
    mService.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0, 0, mListener);
} catch (SecurityException ex1) {
} catch (IllegalArgumentException ex2) {
} catch (RuntimeException ex3) {
}
...

try {
    
// 使用完毕需要remove
    mService.removeUpdates(mListener);
} catch (IllegalArgumentException ex) {
}

  如果使用A-GPS,只需要在requestLocationUpdates的时候指明使用LocationManager.AGPS_PROVIDER即可。

0
相关文章