我在我的应用中使用Fused Location Provider进行位置更新。根据Fused Location Provide文档,它使用所有可用资源(例如Wifi,GPS,Cell tower等)来优化位置。
但我想知道,有没有办法在位置更新接收器中检测当前位置更新来自GPS提供商或网络提供商?
答案 0 :(得分:1)
您可以从您获得的位置location.getProvider()
查看位置提供商。
您使用的是融合位置API或之前的位置,您将从locationManager.getLastKnownLocation
或LocationServices.FusedLocationApi.getLastLocation
获取位置,并从location.getProvider
答案 1 :(得分:0)
在 Google 发布位置监听器的新简单API之前几个月。
使用几行代码很简单。
让我解释一下
第1步:使用SDK管理器下载Google Play服务库。因为位置服务连接到Google Play。
第2步:将库导入您的工作区
第3步:将库添加到项目中
第4步:编写以下代码。
public class MainActivity extends Activity {
LocationClient mlocationclient;
Location location;
LocationRequest mlocationrequest;
int trasition_type=Geofence.GEOFENCE_TRANSITION_ENTER;
LocationListener mlistener;
PendingIntent lviolation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int isGooglePlayServiceAvilable = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
if (isGooglePlayServiceAvilable == ConnectionResult.SUCCESS) {
//Create the location client
mlocationclient=new LocationClient(getApplicationContext(), new CallBack(), new ConnectError());
mlocationclient.connect();
//create the location request objetcs..
mlocationrequest=LocationRequest.create().setInterval(1000).setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
//Crearte the location listener when we want to get location.
mlistener=new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
Log.i("Mine Location", ""+location);
}
};
public class ConnectError implements GooglePlayServicesClient.OnConnectionFailedListener
{
@Override
public void onConnectionFailed(ConnectionResult result) {
// TODO Auto-generated method stub
}
}
public class CallBack implements GooglePlayServicesClient.ConnectionCallbacks
{
@Override
public void onConnected(Bundle connectionHint) {
// TODO Auto-generated method stub
location=mlocationclient.getLastLocation();
mlocationclient.requestLocationUpdates(mlocationrequest, mlistener);
//new GetAddress(getApplicationContext()).execute(location);
}
}
步骤5:将此代码放入android清单文件
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>`
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />