Отсутствуют разрешения, необходимые для LocationManager.requestLocationUpdates.

Я также использовал разрешения в файле манифеста и разрешения во время выполнения. Но я все еще получаю ошибку

«Отсутствуют разрешения, требуемые LocationManager.requestLocationUpdates: android.permission.ACCESS_COARSE_LOCATION или android.permission.ACCESS_FINE_LOCATION Информация о проверке: эта проверка сканирует ваш код и библиотеки и просматривает используемые API, а также сравнивает их с набором разрешений, необходимых для доступа. эти API. Если код, использующий эти API, вызывается во время выполнения, программа аварийно завершает работу. Кроме того, для разрешений, которые могут быть отозваны (с targetSdkVersion 23), клиентский код также должен быть готов к обработке вызовов, вызывающих исключение, если пользователь отклоняет запрос разрешения во время выполнения. Идентификатор проблемы: MissingPermission"

Я использую Android Studio 3.4.1.

Файл манифеста:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

В действии:

 public void getLocation()
{
    try {
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, 5000, 5, this);
    }
    catch(SecurityException e) {
        e.printStackTrace();
    }
}

В методе onCreate():

if (ContextCompat.checkSelfPermission(getApplicationContext(),android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getApplicationContext(),android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

        ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION,android.Manifest.permission.ACCESS_COARSE_LOCATION}, 101);
    }

Пожалуйста, помогите мне. Я просмотрел сообщения, связанные с этим, но мне это совсем не помогает.


person Lokeshwari Lavanya    schedule 20.07.2019    source источник
comment
Вы пытались реализовать все шаги в этом ответе SO?   -  person Chrisvin Jem    schedule 20.07.2019
comment
да пробовал но все равно не работает   -  person Lokeshwari Lavanya    schedule 20.07.2019


Ответы (1)


Попробуйте следующее,

@TargetApi(23)
public void getLocation()
{
    if ( Build.VERSION.SDK_INT >= 23 &&
        ContextCompat.checkSelfPermission( context, android.Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED &&
        ContextCompat.checkSelfPermission( context, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        return  ;
    }
    try {
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, 5000, 5, this);
    }
    catch(SecurityException e) {
        e.printStackTrace();
    }
}
person Chrisvin Jem    schedule 20.07.2019