为啥我在 Google 地图上的当前位置在 Android 应用中不正确? [复制]

Posted

技术标签:

【中文标题】为啥我在 Google 地图上的当前位置在 Android 应用中不正确? [复制]【英文标题】:Why my current location on Google Maps is incorrect in Android app? [duplicate]为什么我在 Google 地图上的当前位置在 Android 应用中不正确? [复制] 【发布时间】:2020-08-15 01:26:46 【问题描述】:

我想制作一个 android 应用程序来确定我在地图上的位置。我从那里使用了 Google Maps SDK 文档和代码。

问题是我总是将 Google 总部作为我当前的位置,而不是我的真实位置。

有什么问题吗?下面是我的代码。


    private GoogleMap mMap;
    private CameraPosition mCameraPosition;

    private Location mLastKnownLocation;
    private FusedLocationProviderClient mFusedLocationProviderClient;

    private static final int DEFAULT_ZOOM = 15;
    private static final int PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 1;
    private boolean mLocationPermissionGranted;

    private static final String TAG = MapsActivity.class.getSimpleName();
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    
    @Override
    public void onMapReady(GoogleMap googleMap) 
        mMap = googleMap;
        getDeviceLocation();
    
    private void getDeviceLocation() 
        try 
             if (mLocationPermissionGranted) 
                Task<Location> locationResult = mFusedLocationProviderClient.getLastLocation();
                locationResult.addOnCompleteListener(this, new OnCompleteListener<Location>() 
                    @Override
                       public void onComplete(@NonNull Task<Location> task) 
                           if (task.isSuccessful()) 
                               mLastKnownLocation = task.getResult();
                               if (mLastKnownLocation != null) 
                                   LatLng mLocation = new LatLng(mLastKnownLocation.getLatitude(),
                                           mLastKnownLocation.getLongitude());
                                   mMap.addMarker(new MarkerOptions().position(mLocation).title("You are here"));
                                   mMap.moveCamera(CameraUpdateFactory.newLatLng(mLocation));
                               
                             else 
                                Log.d(TAG, "Current location is null. Using defaults.");
                                Log.e(TAG, "Exception: %s", task.getException());
                                mMap.moveCamera(CameraUpdateFactory
                                        .newLatLngZoom(mDefaultLocation, DEFAULT_ZOOM));
                                mMap.getUiSettings().setMyLocationButtonEnabled(false);
                            
                        
                    );
                
             catch (SecurityException e)  
                Log.e("Exception: %s", e.getMessage());
            
        
    

【问题讨论】:

查看我对这个问题的回答:***.com/questions/60483232/… 这能回答你的问题吗? Current location is not showing in my android app 【参考方案1】:

您可能正在使用模拟器。这主要是问题

【讨论】:

***.com/questions/60483232/… 标记为重复

以上是关于为啥我在 Google 地图上的当前位置在 Android 应用中不正确? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 HTML 地理位置的 Google 地图

为啥我在同一位置获得不同的 GPS 点

moveCamera 没有更新到我在 Android 谷歌地图上的当前位置?

如何在iphone上的地图中获取当前位置

嵌入式谷歌地图无法在 WebView 中获取当前位置

如何在 ionic 2 应用程序中自动更新谷歌地图上的当前位置