getSpeed ​​() всегда 0 - PullRequest
       0

getSpeed ​​() всегда 0

0 голосов
/ 10 февраля 2020

Это приложение для отслеживания местоположения. Я проверяю это дома, поэтому местоположение не меняется. Для этого я изменяю их вручную, увеличивая широту и долготу на 2 каждый раз. Я вижу изменение местоположения в моем телефоне каждый раз, но скорость по-прежнему всегда 0! Я не знаю, работает ли он, потому что я не пробовал этот метод раньше. Если бы кто-то сделал, я был бы признателен за помощь.

public class MainActivity extends AppCompatActivity {
    private Button b;
    private TextView t;
    private LocationManager locationManager;
    private LocationListener listener;
    private static int a=2;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        t = (TextView) findViewById(R.id.textView);
        b = (Button) findViewById(R.id.button);
        t.setText(""); t.setTextSize(16);
        b.setText("Demarer");

        locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);


        listener = new LocationListener(){
            @Override
            public void onLocationChanged(Location location) {

                //to change location manually
                location.setLatitude(location.getLatitude()+a);
                location.setLongitude(location.getLongitude()+a);
                a=a+10;
                System.out.println("\n\nlocation changed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n");
                //

                Long id = new Long(1);
                String rs = null;
                String json = null;
                //post
                try{
                    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                    StrictMode.setThreadPolicy(policy);
                    PostLocation pl = new PostLocation();
                    json = pl.bowlingJson(location.getLongitude(), location.getLatitude(),id);
                    //System.out.println(json);
                    rs = pl.post("http://192.168.1.50:8080/api/v1/locations", json);

                }catch (IOException EX){ EX.printStackTrace();
                }finally {
                    if (rs == null)
                        t.setText("\nID : " +id+"\nLongitude : "+ location.getLongitude() + "\nLatitude : " + location.getLatitude() +"\nVitesse : "+(location.getSpeed()*3600/1000)+"km/h\n\nnon envoyée" );
                        //t.setText(location.getLatitude()+" : "+location.getLongitude()+"\n"+oldLocation.getLatitude()+" : "+oldLocation.getLongitude());
                    else
                    {
                        t.setText("\nID : " +id+"\nLongitude : "+ location.getLongitude() + "\nLatitude : " + location.getLatitude() +"\nVitesse : "+(location.getSpeed()*3600/1000)+"km/h\n\nbien envoyée" );
                    }
                }
            }

            @Override
            public void onStatusChanged(String s, int i, Bundle bundle) { }

            @Override
            public void onProviderEnabled(String s) { }

            @Override
            public void onProviderDisabled(String s) {
                Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                startActivity(i);
            }
        };
        configure_button();
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            case 10:
                    configure_button();
                break;
            default:
                break;
        }
    }

    void configure_button(){
        // first check for permissions
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.INTERNET}
                        ,10);
            }
            return;
        }

        // va pas executer si n y a pas de privilege un return existe avant
        b.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String locationProvider = LocationManager.NETWORK_PROVIDER;

                //noinspection MissingPermission
                try{
                    locationManager.requestLocationUpdates(locationProvider, 1000, 0, listener);
                }catch (SecurityException e){
                }
            }
        });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...