Answers for "set location on android emulator does not set location in app"

1

how to ask user for his location in android

public class MainActivity extends AppCompatActivity {
  
   //'LocationManager' manages location tracking
   /*'LocationListener' gives us updates about whenever the device moves, it gives us updates on all those */

    LocationManager locationManager;
    LocationListener locationListener;

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

        //STEP 1: Declare and Initialize 'LocationManager' and 'LocationListener'
        //To get users location
        locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

        //To get users permissions and updates about device movement
        locationListener = new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                Log.i("Location:", location.toString());
            }

            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {

            }

            @Override
            public void onProviderEnabled(String provider) {

            }

            @Override
            public void onProviderDisabled(String provider) {

            }
        };

        //STEP 2: Create a Pop up message that ask the user to access his location

        //The following if statement will execute when the user opens the app for the first time, which means he has
        //not provided permission for anything yet, in which case the we will go ahead and ask for his permission.
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
        } 
        //user has already granted you permission so just go ahead and get updates. In this case the code will not continue to STEP 3.
      	else {
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
        }
    }


    //STEP 3: Respond accordingly to whether user granted permission or not
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        //Check if the user granted permission in step 2
        if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            //If Yes, then go ahead and grab the users location user 'LocationManager' and 'LocationListener'
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
                locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
            }

        }
    }
}
Posted by: Guest on March-28-2020

Code answers related to "set location on android emulator does not set location in app"

Code answers related to "Java"

Java Answers by Framework

Browse Popular Code Answers by Language