2015-02-13 15 views
6

tôi đã thiết lập một Bản đồ vị trí dựa trên Android tuy nhiên khi tôi cố gắng và gọi: LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);LocationServices.FusedLocationApi.removeLocationUpdates (mGoogleApiClient, this); Cố gắng để cast như com.google.android.gms.location.LocationListener)

Android studio cố gắng để có tôi đúc nó như

LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, (com.google.android.gms.location.LocationListener) this); 

Điều này tuy nhiên khiến ứng dụng gặp sự cố khi được gọi.

Tôi có đoạn code Location sau cho ứng dụng của tôi:

import android.content.IntentSender; 
import android.location.Location; 
import android.location.LocationListener; 
import android.support.v4.app.FragmentActivity; 
import android.os.Bundle; 
import android.util.Log; 

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.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 
import com.google.android.gms.location.LocationServices; 

import java.util.List; 

import model.SiteModel; 
import model.SqlHelper; 

public class FindNearestLocationMap extends FragmentActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { 

    private GoogleMap mMap; // Might be null if Google Play services APK is not available. 

    private GoogleApiClient mGoogleApiClient; 

    public static final String TAG = FindNearestLocationMap.class.getSimpleName(); 

    private final static int CONNECTION_FAILURE_RESOLUTION_REQUEST = 9000; 

    private LocationRequest mLocationRequest; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_find_nearest_location_map); 

     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .addApi(LocationServices.API) 
       .build(); 

     mLocationRequest = LocationRequest.create() 
       .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY) 
       .setInterval(10 * 1000)  // 10 seconds, in milliseconds 
       .setFastestInterval(1 * 1000); // 1 second, in milliseconds 

     setUpMapIfNeeded(); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     setUpMapIfNeeded(); 
     mGoogleApiClient.connect(); 
    } 

    @Override 
    protected void onPause() { //////ERROR IS HERE//////// 
     super.onPause(); 
     if (mGoogleApiClient.isConnected()) { 
      LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, (com.google.android.gms.location.LocationListener) this); 
      mGoogleApiClient.disconnect(); 
     } 
    } 
.... 

tôi có tất cả các phương pháp thực hiện các lớp đòi hỏi và tôi có thể chạy chương trình. Nó chỉ phá vỡ khi onPause được gọi là bất kỳ ý tưởng về những gì tôi nên làm gì?

Cảm ơn bạn.

Trả lời

16

Bạn đang sử dụng nhập sai cho LocationListener. Bạn có:

import android.location.LocationListener; 

đó là di sản LocationListener và không nghe những Location Provider Fused của:

import com.google.android.gms.location.LocationListener; 
Các vấn đề liên quan