【问题标题】:Android can't get current location of deviceAndroid无法获取设备的当前位置
【发布时间】:2016-12-12 10:20:26
【问题描述】:

我正在尝试获取我的 android 手机的当前位置并将其显示在地图上。它适用于另一台设备,但如果我的设备的 GPS 已打开,我的设备仅显示世界地图。这是我的代码:

  if(locationManagerCheck .isLocationServiceAvailable()){
        if (googleMap == null) {
            try {
                googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
            } catch (Exception e) {
                Toast.makeText(getApplicationContext(),
                        e.getMessage(), Toast.LENGTH_SHORT)
                        .show();
            }
            if (googleMap == null) {
                Toast.makeText(getApplicationContext(),
                        "Harita oluşturulamadı", Toast.LENGTH_SHORT)
                        .show();
            } else {
                googleMap.setMyLocationEnabled(true);
                googleMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
                    @Override
                    public void onMyLocationChange(Location location) {
                        double latitude = location.getLatitude();
                        double longitude = location.getLongitude();
                        LatLng latLng = new LatLng(latitude, longitude);

                        googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15));
                        googleMap.setOnMyLocationChangeListener(null);
                        // MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Konumunuz");
                        //marker.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_YELLOW));
                        //googleMap.addMarker(marker);
                    }
                });
            }}

    }else{
        locationManagerCheck .createLocationServiceError(Anasayfa.this);
    }

请指导。

【问题讨论】:

  • 您的手机操作系统版本是多少? 6.0或以上?
  • 我的手机是6.0,我在4.4上试过,它可以找到位置,但在我的手机上只显示地图
  • 对于 Android 6,您必须在运行时请求权限。
  • 感谢它与运行时权限一起使用 :)

标签: android location maps


【解决方案1】:

检查以下所有条件:

1) 您需要在谷歌开发者控制台上创建 android map api 密钥。 https://developers.google.com/maps/documentation/javascript/get-api-key

2) 如果您已经创建了 api 密钥,请检查您是否在密钥文件中粘贴了相同的密钥。

如果您是通过 android studio 创建的,那么“res/values/google_maps_api.xml”就是您需要粘贴密钥的文件。

3) 如果以上两个条件为真,则在控制台上检查您在生成密钥时是否粘贴了正确的 Sh1 指纹和包名称。您将在 google_maps_api.xml 文件中找到您的 Sh1 和包名称。

4)如果以上所有条件都检查了,那么检查你是否有清单文件中的使用权限..?

5) 如果上面的一切都很好,那么粘贴你的 logcat 或错误。 那么只有 SO 才能为您提供更多帮助。

您需要根据您的用途授予“互联网”权限并访问“精细或粗略的位置”或两者兼而有之。

如果您想获得有关如何获取用户当前位置的参考,请查看以下链接: https://developer.android.com/training/location/retrieve-current.html

或在 SO 上搜索你会发现很多答案。

【讨论】:

  • 好的,但它适用于其他手机。在我的手机上,地图可以工作,但找不到位置。我尝试在我的手机上查找其他应用程序的位置,gps 正在工作。问题只在我的应用上
  • 发布您的 logcat 或错误,以便我们找出问题所在..??
  • 或执行以下步骤:
  • 抱歉,我不小心按了 Enter,请执行以下步骤: 1) 首先在相应手机中打开 Google 地图应用程序,一旦 Google 地图应用程序显示您的当前位置,您就会遇到错误,然后在您的应用程序中尝试。现在您的应用程序可能会找到设备的当前位置。有时我们忘记检查 currentLocation 空条件,如果您使用“getlastKnownLocation”之类的方法或类似的方法,那么这就是问题所在。
  • 它不起作用 :( 但我意识到,在谷歌地图应用程序 gps 图标出现在屏幕上但在我的应用程序上它永远不会工作。我认为我的应用程序无法启动我的 gps :D
猜你喜欢
  • 1970-01-01
  • 2015-10-10
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多