2016-04-05 4 views
1

Я пытаюсь найти сделать следующую работу линии:Не работает на Android Studio- locationManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0, 0, this);

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 

Студия помечает его как ошибки и предлагает проверить, что все разрешения установлены или обращение с SecurityException.

Я думаю, что я установил все необходимые разрешения:

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

Но все-таки, это не работает.

У кого-то была такая же проблема? Спасибо заранее!

+1

Whats ваш targetSdkVersion? –

+0

Если только студия отмечена красным цветом, это оштрафовано. Попробуйте скомпилировать. Я тоже был таким, но компиляция оштрафована, хотя она отметила, что красный –

+0

проверяет наличие динамических разрешений. –

ответ

0

вы можете использовать эти code.In Android Studio, вы должны проверить динамическое разрешение во время выполнения

if (Build.VERSION.SDK_INT >= 23 && 
       ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && 
       ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 

      ActivityCompat.requestPermissions(getActivity(), 
        new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 
        MY_PERMISSIONS_REQUEST_LOCATION); 
     } else { 

      getLocation(); 

     } 

и

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 

    switch (requestCode) { 
     case MY_PERMISSIONS_REQUEST_LOCATION: 
      // If request is cancelled, the result arrays are empty. 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

       getLocation(); 


      } 
      break; 

    } 
} 
0

Это происходит потому, что в Зефир, права доступа задаются во время выполнения в user.So мы должны обращаться с пользователем, который предоставил это конкретное разрешение или нет.

0

Добавьте эти два разрешения:

<uses-permission android:name="android.permission.WAKE_LOCK"/> 
    <uses-permission android:name="android.permission.INTERNET"/>