1

Приведенный ниже код используется для получения текущего местоположения из другого фрагмента. Но я получаю сообщение об ошибке в журнале, поскольку Google «параметр клиента Google api требуется в android». Это сбой мое приложение, так что кто-нибудь знал, Что точно проблема и как решить ее ...Параметр клиента Google api требуется в android

public class GPSTracker extends Activity implements LocationListener, ConnectionCallbacks, OnConnectionFailedListener 
    { 

private final Context mContext; 
protected LocationManager locationManager; 
boolean canGetLocation = false; 

private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000; 
// The minimum distance to change Updates in meters 
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 0; // 10 meters 

// The minimum time between updates in milliseconds 
private static final long MIN_TIME_BW_UPDATES = 1000 * 20; // 1 minute 

Location location; // location 
double latitude; // latitude 
double longitude; // longitude 

SharedData gpsSharedData; 
public GoogleApiClient mGoogleApiClient; 
private Location mLastLocation; 

public GPSTracker(Context context) { 
    this.mContext = context; 
    getLocation(); 
} 

/** 
* Method to verify google play services on the device 
* */ 
public boolean checkPlayServices() { 
    int resultCode = GooglePlayServicesUtil 
      .isGooglePlayServicesAvailable(mContext); 
    if (resultCode != ConnectionResult.SUCCESS) { 
     if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { 
      GooglePlayServicesUtil.getErrorDialog(resultCode, 
        GPSTracker.this, PLAY_SERVICES_RESOLUTION_REQUEST) 
        .show(); 
     } else { 
      Toast.makeText(getApplicationContext(), 
        "This device is not supported.", Toast.LENGTH_LONG) 
        .show(); 
      finish(); 
     } 
     return false; 
    } 
    return true; 
} 

// Creating google api client object 
public synchronized void buildGoogleApiClient() { 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(LocationServices.API).build(); 
} 

public void getLocation() { 
    // TODO Auto-generated method stub 
    mLastLocation = LocationServices.FusedLocationApi 
      .getLastLocation(mGoogleApiClient); 

    if (mLastLocation != null) { 
     latitude = mLastLocation.getLatitude(); 
     longitude = mLastLocation.getLongitude(); 

    } else { 
     System.out 
       .println("(Couldn't get the location. Make sure location is enabled on the device)"); 
    } 
} 

public void stopUsingGPS() { 
    if (locationManager != null) { 
     locationManager.removeUpdates(GPSTracker.this); 
    } 
} 

/** 
* Function to get latitude 
* */ 
public double getLatitude() { 
    if (location != null) { 
     latitude = location.getLatitude(); 
    } 

    // return latitude 
    return latitude; 
} 

public double getLongitude() { 
    if (location != null) { 
     longitude = location.getLongitude(); 
    } 

    // return longitude 
    return longitude; 
} 

public boolean canGetLocation() { 
    return this.canGetLocation; 
} 

@Override 
public void onLocationChanged(Location location) { 
    // TODO Auto-generated method stub 


} 

@Override 
public void onStatusChanged(String provider, int status, Bundle extras) { 
    // TODO Auto-generated method stub 

} 

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

} 

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

} 

@Override 
public void onConnected(Bundle arg0) { 
    // TODO Auto-generated method stub 
    // Once connected with google api, get the location 
    getLocation(); 
} 



@Override 
public void onConnectionSuspended(int arg0) { 
    // TODO Auto-generated method stub 
    mGoogleApiClient.connect(); 
} 

@Override 
public void onConnectionFailed(ConnectionResult arg0) { 

    System.out 
      .println("Connection failed: ConnectionResult.getErrorCode() = " 
        + arg0.getErrorCode()); 
} 

}

+0

Just chek ur import –

+0

Я получаю ту же ошибку в проекте, над которым я работаю, пожалуйста, предоставьте информацию о том, как вы решили проблему или любезно принимаете ответ. – Emzor

ответ

4

Пожалуйста, позвоните buildGoogleApiClient(); в первой строке getLocation(), вы не инициализировать переменную mGoogleApiClient ,

Смежные вопросы