Почему GPS не работает на андроид?

182
27 февраля 2019, 04:20

Нужен был GPS в приложении под андроид.Есть простой код(снизу) , он пару дней поработал а сейчас уже не работает.Переписал в другое приложение(приложение поменял но код тот же) толку ноль.В настройках все хорошо,все разрешено.Помогите пожалуйста улучшить код, чтоб работал безотказно.

Manifest.xml:

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

Activity :

    public class CompsActivity extends AppCompatActivity
            implements NavigationView.OnNavigationItemSelectedListener, LocationListener {
//константа для получения разрешений
public static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 1;
private LocationManager locationManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        checkAndRequestPermissions();//Беру разрешение в рантайме
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
              //проверка на то что есть ли разрешения
              if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {    
                    return;
              }
                locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                        3000,   
                        10, GpsBasicsAndroidExample.this);
    }

private  boolean checkAndRequestPermissions() {
            int camera = ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA);
            int storage = ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
            int loc = ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION);
            int loc2 = ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION);
            List<String> listPermissionsNeeded = new ArrayList<>();

if (camera != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(android.Manifest.permission.CAMERA);
        }
        if (storage != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
        }
        if (loc2 != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(android.Manifest.permission.ACCESS_FINE_LOCATION);
        }
        if (loc != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add(android.Manifest.permission.ACCESS_COARSE_LOCATION);
        }
        if (!listPermissionsNeeded.isEmpty())
        {
            ActivityCompat.requestPermissions(this,listPermissionsNeeded.toArray
                    (new String[listPermissionsNeeded.size()]),REQUEST_ID_MULTIPLE_PERMISSIONS);
            return false;
        }
        return true;
    }


            @Override
            public void onLocationChanged(Location location) {
                String str = "Latitude:"+location.getLatitude()+"Longitude: "+location.getLongitude();
                Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
            }
            @Override
            public void onProviderDisabled(String provider) {                     
                Toast.makeText(getBaseContext(), "Gps turned off ", Toast.LENGTH_LONG).show();
            }
            @Override
            public void onProviderEnabled(String provider) {                     
                Toast.makeText(getBaseContext(), "Gps turned on ", Toast.LENGTH_LONG).show();
            }
            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {
            }
READ ALSO
Как избавиться от потери строк Buffered Reader/Writer

Как избавиться от потери строк Buffered Reader/Writer

Суть в следующем: Читаю файл построчно с помощью BufferedReader

169
Убрать значение в периоде

Убрать значение в периоде

Как можно убрать значение в периоде в строке? те

190
Прочитать последнюю строку в тхт файле

Прочитать последнюю строку в тхт файле

Подскажите пожалуйста, нужно прочитать последнюю строку в тхт файлеНашел такой пример, но он не выводит юникод(вместо него кракозябры), можно...

168
Spring кириллица в аргументах get запросов

Spring кириллица в аргументах get запросов

Есть проект, к которому подключен Spring 32

199