Как я узнаю, включен ли GPS устройства на базе Android

Вы можете использовать что-то вроде этого:

let a = document.createElement('a');
let anchorText = document.createTextNode("Organization name");
a.appendChild(anchorText);
a.title = "Open organization webpage";
a.href = "http://example.com";
document.body.appendChild(a);
198
задан naXa 10 July 2016 в 10:51
поделиться

3 ответа

GPS будет использоваться, если пользователь разрешил его использование в своих настройках.

Вы больше не можете явно включить это, но и не обязаны - на самом деле это настройка конфиденциальности, поэтому вы не хотите ее настраивать. Если пользователь согласен с тем, что приложения получают точные координаты, он будет включен. Тогда API диспетчера местоположения будет использовать GPS, если это возможно.

Если ваше приложение действительно бесполезно без GPS и оно отключено, вы можете открыть приложение настроек на правом экране, используя намерение, чтобы пользователь мог его включить.

6
ответ дан 23 November 2019 в 05:10
поделиться

Лучший способ выглядит следующим образом:

 final LocationManager manager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );

    if ( !manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) {
        buildAlertMessageNoGps();
    }

  private void buildAlertMessageNoGps() {
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Your GPS seems to be disabled, do you want to enable it?")
           .setCancelable(false)
           .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
               public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                   startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
               }
           })
           .setNegativeButton("No", new DialogInterface.OnClickListener() {
               public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                    dialog.cancel();
               }
           });
    final AlertDialog alert = builder.create();
    alert.show();
}
441
ответ дан 23 November 2019 в 05:10
поделиться

да Настройки GPS больше не могут быть изменены программно, так как они являются настройками конфиденциальности, и мы должны проверить, включены ли они в программу или нет, и обрабатывать их, если они не включены. Вы можете уведомить пользователя о том, что GPS выключен, и использовать что-то подобное, чтобы показать пользователю экран настроек, если хотите.

Проверьте, доступны ли поставщики услуг определения местоположения

    String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
    if(provider != null){
        Log.v(TAG, " Location providers: "+provider);
        //Start searching for location and update the location text when update available
        startFetchingLocation();
    }else{
        // Notify users and show settings if they want to enable GPS
    }

Если пользователь хочет включить GPS, можно отобразить экран настроек таким образом.

Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, REQUEST_CODE);

А в окне OnActivityResult можно посмотреть, включил пользователь эту функцию или нет

    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        if(requestCode == REQUEST_CODE && resultCode == 0){
            String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
            if(provider != null){
                Log.v(TAG, " Location providers: "+provider);
                //Start searching for location and update the location text when update available. 
// Do whatever you want
                startFetchingLocation();
            }else{
                //Users did not switch on the GPS
            }
        }
    }

Это один из способов, и я надеюсь, что это поможет. Дайте мне знать, если я делаю что-то не так.

37
ответ дан 23 November 2019 в 05:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: