5

こんにちは私は、十分に正確なユーザーの現在の位置が必要な Android アプリケーションを開発しています。したがって、これを実装するには2つのオプションがあります

現在の場所を取得しています。http://developer.android.com/training/location/retrieve-current.html

位置情報更新の受信 http://developer.android.com/training/location/receive-location-updates.html

だからここに私の問題があります。現在の場所の取得を行ったところ、最後に、ユーザーに最後に最もよく知られている場所が表示されることに気付きました。しかし、私の要件はユーザーの現在の場所です。

というわけで、位置情報更新の受信へと進みます。私は最初の更新を取得できますが、更新を停止します。しかし、ここでも初めて、新しい場所ではなく最後の場所が表示されます。そして最初に読んだ後、GPSを開始して連続した更新を提供します。しかし、私は最初の更新のみに興味があります。

したがって、ユーザーに正確な現在地を提供する優れたソリューションが必要です。GPSまたはネットワークまたはwifiのいずれかを使用して、利用可能なものを使用してください。

私が間違ったことをしている場合は、修正してください。助けが必要。ありがとうございました。

4

2 に答える 2

2

これが、Google マップに使用するユーザーの現在地を取得する方法です。

if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
            mMap.setMyLocationEnabled(true);
            Criteria criteria = new Criteria();
            LocationManager locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
            String provider = locationManager.getBestProvider(criteria, false);
            Location location = locationManager.getLastKnownLocation(provider);
            double lat =  location.getLatitude();
            double lng = location.getLongitude();
            LatLng coordinate = new LatLng(lat, lng);
            CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 13);
            mMap.animateCamera(yourLocation);

        } else {
            final AlertDialog alertDialogGPS = new AlertDialog.Builder(getActivity()).create();

            alertDialogGPS.setTitle("Info");
            alertDialogGPS.setMessage("Looks like you have not given GPS permissions. Please give GPS permissions and return back to the app.");
            alertDialogGPS.setIcon(android.R.drawable.ic_dialog_alert);
            alertDialogGPS.setButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {

                    Intent intentSettings = new Intent(Settings.ACTION_APPLICATION_SETTINGS);
                    startActivity(intentSettings);
                    alertDialogGPS.dismiss();
                }

            });

            alertDialogGPS.show();
        }
于 2016-09-16T06:33:09.550 に答える
1

必要なGPS リスナー ソリューション。

ロケーション リスナーに追加しますが、GPS を選択します。のみがpublic void onLocationChanged(Location loc)現在の場所を持ちます。

于 2013-11-01T07:57:42.790 に答える