I am implementing Google map API v2 in my android application. The application works fine in all devices but not in lollipop devices. Application is crashing in lollipop. I
Try to use Android Studio to generate Google Maps activity.
May be you are trying to get location via
LocationManager
class. This way perfectly works on preLollipop device. But in lollipop it doesnot works. Now Again Google has released a new API but they haven't updated the documentation properly. Here has a location get demo code that will provide you to get Location Object after a certain interval using the new/latest Location Service API.
import android.app.Activity;
import android.location.Location;
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.LocationListener;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;
/**
* Created by skarim on 10/29/15.
*/
public class GetLocationAfterCertainInterval extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener ,
LocationListener {
GoogleApiClient apiClient=null;
LocationRequest mLocationRequest=null;
private int locationInterval,fastedInterval;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initialize Your View here.
setLocationLocationRequest();
}
@Override
public void onDestroy() {
// Your need of location update is done. So you have to stop the apiClient.
super.onDestroy();
this.apiClient.disconnect();
}
private void setLocationLocationRequest() {
try {
apiClient=new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build();
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(29000);
mLocationRequest.setFastestInterval(5000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
apiClient.connect();
}catch (Exception e){
Log.d("LS", e.getMessage() == null ? "" : e.getMessage());
}
}
@Override
public void onConnected(Bundle bundle) {
// Your API Client is connected. So can request for updates
LocationServices.FusedLocationApi.requestLocationUpdates(apiClient, mLocationRequest, this);
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onLocationChanged(Location location) {
// After your desired interval This api will give you the Location Object.
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
}
}
For more details about this API you can see this Developer Link
My related Answer is here
Sorry for bad English.Thanks