Android无法parsing方法requestLocationUpdates FusedLocationProviderAPI

我试图按照Android 接收位置更新教程。 示例代码在Github上 。

一切工作除了这一行: LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);

这是抛出一个cannot resolve method requestLocationUpdates错误。 我没有看到文档中的任何东西,但我对Android很新,所以可能会丢失一些东西:)。

这是完整的代码。 任何想法,我要去错了? 谢谢!

 package location.test.example.com; import android.app.Fragment; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.text.format.DateFormat; import android.util.Log; import android.view.ActionMode; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.location.LocationRequest; import com.google.android.gms.location.LocationServices; import java.util.ArrayList; import java.util.Date; public class LocationFragment extends Fragment implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { protected GoogleApiClient mGoogleApiClient; protected Location mCurrentLocation; protected LocationRequest mLocationRequest; protected String mLastUpdateTime; public static final long UPDATE_INTERVAL_IN_MILLISECONDS = 5000; public static final long FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS = UPDATE_INTERVAL_IN_MILLISECONDS / 5; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLastUpdateTime = ""; buildGoogleApiClient(); if (NavUtils.getParentActivityName(getActivity()) != null) { getActivity().getActionBar().setDisplayHomeAsUpEnabled(true); } setHasOptionsMenu(true); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_location, container, false); return v; } protected synchronized void buildGoogleApiClient() { mGoogleApiClient = new GoogleApiClient.Builder(getActivity()) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(LocationServices.API) .build(); createLocationRequest(); } protected void createLocationRequest() { mLocationRequest = new LocationRequest(); mLocationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS); mLocationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS); mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); startLocationUpdates(); } protected void startLocationUpdates() { LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } @Override public void onLocationChanged(Location location) { mCurrentLocation = location; mLastUpdateTime = DateFormat.getDateFormat(getActivity()).format(new Date()); Toast.makeText(getActivity(), location.toString() + "", Toast.LENGTH_SHORT).show(); } @Override public void onConnected(Bundle connectionHint) { } @Override public void onConnectionFailed(ConnectionResult result) { Log.i("LocationFragment", "Connection failed: ConnectionResult.getErrorCode() " + result.getErrorCode()); } @Override public void onConnectionSuspended(int cause) { Log.i("LocationFragment", "Connection suspended"); mGoogleApiClient.connect(); } } 

Solutions Collecting From Web of "Android无法parsing方法requestLocationUpdates FusedLocationProviderAPI"

您必须使用LocationListener作为LocationServices.FusedLocationApi.requestLocationUpdates's locationListener

android.location.LocationListener

com.google.android.gms.location.LocationListener

import

 import com.google.android.gms.location.LocationListener; 

代替

 import android.location.LocationListener; 

导入android.location.LocationListenercom.google.android.gms.location.LocationListener是没用的,因为软件包仍未被使用。 实现com.google.android.gms.location.LocationListener接口将会做。

使用实现com.google.android.gms.location.LocationListener而不是更改导入语句

不只是LocationListener / android.location.LocationListener。

它确实解决了我的问题。

需要更新版本的谷歌播放服务10.0.0 +

 compile 'com.google.android.gms:play-services:10.0.0'