Используйте диалоговое окно Android ON ON OFF в приложении «Моя заявка»

В нашем приложении мы хотим интегрировать диалоги по умолчанию Android по умолчанию. Тот же диалог, который появляется, когда GPS выключен, и мы нажимаем кнопку моего местоположения в приложениях Google Maps. Приложили также образ диалога, который я хочу интегрировать.

  1. При нажатии кнопки «Нет» будет закрыто диалоговое окно.
  2. Нажав на кнопку «Да», вы активируете GPS-устройство напрямую.

Диалоговое окно появляется для приложения OLA Ниже (ANDROID L):
Введите описание изображения здесь

Диалоговое окно появляется для приложения OLA Ниже (ANDROID KIT_KAT):
Введите описание изображения здесь

Диалог появится для Карты Google ниже (ANDROID L):
Введите описание изображения здесь

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

С нетерпением жду ответа. Заранее спасибо.

Solutions Collecting From Web of "Используйте диалоговое окно Android ON ON OFF в приложении «Моя заявка»"

Вам нужно использовать последнюю версию сервиса Google Play. В последней версии есть один диалог, чтобы активировать все необходимые вещи, чтобы получить GPS.

Из документации разработчика Android Developer Play,

Настройки местоположения. В то время как FusedLocationProviderApi объединяет несколько датчиков, чтобы обеспечить оптимальное местоположение, точность местоположения, которое получает ваше приложение, в значительной степени зависит от настроек, включенных на устройстве (GPS, Wi-Fi, режим самолета и т. Д.). Используя новый класс SettingsApi, вы можете открыть диалоговое окно «Параметры местоположения», которое отображает элемент управления одним нажатием для пользователей, чтобы изменить их настройки, не покидая приложение.

Ссылка направляется на версию версии Play Service. Версия 7.0 представила это новое приглашение.

import android.content.Intent; import android.content.IntentSender; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.common.api.PendingResult; import com.google.android.gms.common.api.ResultCallback; import com.google.android.gms.common.api.Status; import com.google.android.gms.location.LocationRequest; import com.google.android.gms.location.LocationServices; import com.google.android.gms.location.LocationSettingsRequest; import com.google.android.gms.location.LocationSettingsResult; import com.google.android.gms.location.LocationSettingsStatusCodes; public class LocSettingsActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, ResultCallback { protected GoogleApiClient mGoogleApiClient; protected LocationRequest locationRequest; int REQUEST_CHECK_SETTINGS = 100; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_loc_settings); mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(LocationServices.API) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this).build(); mGoogleApiClient.connect(); locationRequest = LocationRequest.create(); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setInterval(30 * 1000); locationRequest.setFastestInterval(5 * 1000); } @Override public void onConnected(@Nullable Bundle bundle) { LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder() .addLocationRequest(locationRequest); builder.setAlwaysShow(true); PendingResult result = LocationServices.SettingsApi.checkLocationSettings( mGoogleApiClient, builder.build() ); result.setResultCallback(this); } @Override public void onConnectionSuspended(int i) { } @Override public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { } @Override public void onResult(@NonNull LocationSettingsResult locationSettingsResult) { final Status status = locationSettingsResult.getStatus(); switch (status.getStatusCode()) { case LocationSettingsStatusCodes.SUCCESS: // NO need to show the dialog; break; case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: // Location settings are not satisfied. Show the user a dialog try { // Show the dialog by calling startResolutionForResult(), and check the result // in onActivityResult(). status.startResolutionForResult(LocSettingsActivity.this, REQUEST_CHECK_SETTINGS); } catch (IntentSender.SendIntentException e) { //failed to show } break; case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE: // Location settings are unavailable so not possible to show any dialog now break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CHECK_SETTINGS) { if (resultCode == RESULT_OK) { Toast.makeText(getApplicationContext(), "GPS enabled", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "GPS is not enabled", Toast.LENGTH_LONG).show(); } } } } 
 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.google.android.gms:play-services-location:8.4.0' } 

Для достижения этой функциональности Ola Cabs использует недавно выпущенный API настроек. В соответствии с новым API пользователю не требуется перейти на страницу настроек, чтобы включить службы определения местоположения, обеспечивающие бесшовную интеграцию для них. Пожалуйста, прочитайте это для более подробной информации.