Приложение, которое может получить местоположение и работает на android 4.0.3+

Для android версий менее 6 просто добавление этих запросов разрешений в манифест работает:

<uses-permission android_name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android_name="android.permission.ACCESS_COARSE_LOCATION" />

Но для android версии 6 мне нужно явно запросить разрешение тоже, чтобы получить местоположение:

requestPermissions(new String[]{ Manifest.permission.ACCESS_FINE_LOCATION}, 1340);

Проблема в том, что если я добавлю выше код приложение работает только на android 6 и не работает на более низких версиях, как requestPermissionsне существует на более низких версиях. и если я удалю его, я не смогу получить местоположение на android 6.

Что я могу сделать, чтобы мое приложение было в состоянии получить расположение на android 4.0.3+

1 ответ

  1. Вы можете проверить уровень API телефона, на котором работает ваше приложение, как это:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
         //later than 4.x - so here you can run the code
         //ideally you want to make this call in a helper method which you then annotate with the @TargetApi
         requestPermissions(new String[]{ Manifest.permission.ACCESS_FINE_LOCATION}, 1340);
        }
    else{
      //nothing to do in your case ?
    }
    

    Вы также можете использовать @TargetApi(Build.VERSION_CODES.LOLLIPOP)в методах, где вы хотите сделать «леденец+» звонки.