【问题标题】:Location coming up as null in Android位置在 Android 中显示为空
【发布时间】:2021-11-20 21:18:20
【问题描述】:

我在MainActivityonCreate()onResume() 方法中调用了这个方法。

基本上,我使用它是为了获取当前位置的城市名称并将其设置为字符串,以便以后使用。 为了看看它是否有效,我只是将它设置为我的欢迎文本。

方法是:

    private void getLocation() {

        if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {

            fusedLocationProviderClient.getLastLocation().addOnCompleteListener(new OnCompleteListener<Location>() {

                @Override
                public void onComplete(@NonNull Task<Location> task) {

                    Location location = task.getResult();
                    if (location != null) {

                        try {
                            Geocoder geocoder = new Geocoder(MainActivity.this, Locale.getDefault());
                            List<Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);

                            cityName = addresses.get(0).getLocality(); // sets the address here
                            Welcome.setText(cityName);

                        } catch (IOException e) {
                            e.printStackTrace();
                        }

                    } else {
                        Toast.makeText(MainActivity.this, "Location null error", Toast.LENGTH_SHORT).show();
                    }
                }
            });

        } else {
            ActivityCompat.requestPermissions(MainActivity.this, new String[] {Manifest.permission.ACCESS_FINE_LOCATION},44);
        }
    }

问题是,当我在 android studio 模拟器上时,它在大多数情况下都可以正常工作。

但是当我在手机上运行应用程序时,我得到了我设置的“位置空错误”toast。 意思是位置为空。即使在设备设置中打开了位置信息。

我不知道是什么问题。

【问题讨论】:

    标签: java android geolocation location android-gps


    【解决方案1】:

    在您的情况下,您想在 locationupdates 方法中使用您的地理编码器。一旦位置不为空,请使用该位置查找您的地址,然后停止更新。

    为此,您需要使用 requestLocationUpdates,因为如果其他应用程序在一定时间内未请求该位置,则 lastKnownlocation 可能为空。

    看看这个问题中的my answer。它将帮助您通过使用位置更新来获取位置

    【讨论】:

    • 非常感谢!有效。模拟器和我的手机。绝对是一场噩梦,但是按照链接帖子中的代码进行操作非常有效。我会给你一个赞成票,但我还没有足够的声誉。对不起。 :(
    • 没问题,很高兴它有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多