Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class HomeActivity extends AppCompatActivity implements
- GoogleApiClient.ConnectionCallbacks,
- GoogleApiClient.OnConnectionFailedListener,
- LocationListener {
- private static final String TAG = "MyActivity";
- GoogleApiClient mGoogleApiClient;
- Location mCurrentLocation;
- String mLastUpdateTime;
- String latLong;
- String address;
- private TextView locationTextView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getSupportActionBar().hide();
- Log.d(TAG, "onCreate ...............................");
- setContentView(R.layout.activity_main);
- Button button = (Button) findViewById(R.id.button);
- locationTextView = (TextView) findViewById(R.id.tv_current_location);
- button.setOnClickListener(onClick);
- configure_button();
- initFusedLocationManager();
- }
- private void initFusedLocationManager() {
- if (ContextCompat.checkSelfPermission(this,
- Manifest.permission.ACCESS_FINE_LOCATION)
- == PackageManager.PERMISSION_GRANTED) {
- buildGoogleApiClient();
- }
- }
- @Override
- protected void onPause() {
- super.onPause();
- }
- @Override
- public void onResume() {
- super.onResume();
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
- @NonNull int[] grantResults) {
- switch (requestCode) {
- case 10:
- configure_button();
- break;
- default:
- break;
- }
- }
- void configure_button() {
- if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) !=
- PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this,
- Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,
- Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.INTERNET}
- , 10);
- Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
- startActivity(i);
- }
- }
- }
- @Override
- public void onConnected(@Nullable Bundle bundle) {
- LocationRequest mLocationRequest = new LocationRequest();
- mLocationRequest.setInterval(1000);
- mLocationRequest.setFastestInterval(1000);
- mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
- if (ContextCompat.checkSelfPermission(this,
- Manifest.permission.ACCESS_FINE_LOCATION)
- == PackageManager.PERMISSION_GRANTED) {
- LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
- }
- }
- @Override
- public void onConnectionSuspended(int i) {}
- @Override
- public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {}
- @Override
- public void onLocationChanged(Location location) {
- Log.d(TAG, "Firing onLocationChanged..............................................");
- mCurrentLocation = location;
- mLastUpdateTime = DateFormat.getTimeInstance().format(new Date());
- latLong = "Location : "nLat: " + mCurrentLocation.getLatitude() + " " + "Long: " + mCurrentLocation.getLongitude();
- locationTextView.setText(latLong);
- //stop location updates
- if (mGoogleApiClient != null) {
- LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
- }
- }
- protected synchronized void buildGoogleApiClient() {
- mGoogleApiClient = new GoogleApiClient.Builder(this)
- .addConnectionCallbacks(this)
- .addOnConnectionFailedListener(this)
- .addApi(LocationServices.API)
- .build();
- mGoogleApiClient.connect();
- }
- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.GET_ACCOUNTS" />
- <uses-permission android:name="android.permission.RECORD_AUDIO" />
- <uses-permission android:name="android.permission.STORAGE" />
- <uses-permission android:name="android.permission.READ_PROFILE" />
- <uses-permission android:name="android.permission.READ_CONTACTS" />
- compile 'com.google.android.gms:play-services:11.4.0'
Add Comment
Please, Sign In to add comment