GPS-статус андроида при запуске приложения - PullRequest
1 голос
/ 09 марта 2012

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

Но вот мое требование: когда я сначала запускаю приложение, оно должно проверять статус GPS, если GPS доступен, только тогда я хочу начать свою деятельность, в противном случае ему нужно отобразить какое-то сообщение для пользователя, как«Пожалуйста, включите GPS.»

Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 09 марта 2012

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

вот код

locationManager = (LocationManager) getSystemService(context);

    criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_COARSE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);
    criteria.setSpeedRequired(false);
    criteria.setCostAllowed(true);
    criteria.setPowerRequirement(Criteria.POWER_HIGH);
    provider = locationManager.getBestProvider(criteria, true);


    if(provider==null){
        new AlertDialog.Builder(this)
        .setTitle("Location Settings")
        .setMessage("Application needs your location,do you want to go to\n" +
                "system settings to enable your location source?")
        .setIcon(android.R.drawable.ic_menu_mapmode)
        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int whichButton) {
                try{

                    startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));

                }catch(Exception e){
                    e.printStackTrace();

                }
            }})
         .setNegativeButton("Exit", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                LocationBasedServicesV1.this.finish();

            }

         })
        .show();
    }
1 голос
/ 09 марта 2012

Я думаю, что этот метод может помочь вам:

public static boolean isGPSAvailable(Context ctx){

    LocationManager lm = (LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE);

    return lm != null &&
            (lm.isProviderEnabled(LocationManager.GPS_PROVIDER) ||
                lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER));
}//isGPSAvailable 
...