Step 1. Add play services location in build.gradle
compile 'com.google.android.gms:play-services-location:11.4.2'Step 2. Add Permission in AndroidManifestFile.xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />Step 3. MainActivity.class
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
public class MainActivity extends AppCompatActivity {Image Android example
protected Location mLastLocation;
int REQUEST_PERMISSIONS_REQUEST_CODE = 1001;
FusedLocationProviderClient mFusedLocationClient;
private TextView mLatitudeText;
private TextView mLongitudeText;
Button btn_getLocation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
btn_getLocation = (Button) findViewById(R.id.btn_get_location);
mLatitudeText = (TextView) findViewById((R.id.mLatitudeText));
mLongitudeText = (TextView) findViewById((R.id.mLongitudeText));
btn_getLocation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!checkPermissions()) {
requestPermissions();
} else {
getLastLocation();
}
}
});
}
/**
* Return the current state of the permissions needed.
*/
private boolean checkPermissions() {
int permissionState = ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION);
return permissionState == PackageManager.PERMISSION_GRANTED;
}
@SuppressWarnings("MissingPermission")
private void getLastLocation() {
mFusedLocationClient.getLastLocation()
.addOnCompleteListener(this, new OnCompleteListener<Location>() {
@Override
public void onComplete(@NonNull Task<Location> task) {
if (task.isSuccessful() && task.getResult() != null) {
mLastLocation = task.getResult();
mLatitudeText.setText("Latitude : "+
mLastLocation.getLatitude() + "");
mLongitudeText.setText("Longitude : "+
mLastLocation.getLongitude() + "");
} else {
showMessage("No Location found");
}
}
});
}
public void showMessage(String message) {
if (message == null || message.length() == 0)
return;
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
private void requestPermissions() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
getLastLocation();
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_PERMISSIONS_REQUEST_CODE);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == REQUEST_PERMISSIONS_REQUEST_CODE) {
if (grantResults.length <= 0) {
} else if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission granted.
getLastLocation();
} else {
Intent intent = new Intent();
intent.setAction(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package",
BuildConfig.APPLICATION_ID, null);
intent.setData(uri);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
}
}