Android LocationListener.onLocationChanged 永远不会被调用

标签 android

我遇到了一个奇怪的问题,现在花了很多时间试图解决这个问题。对于 Android Market 中的 NFC Checkin 应用程序,我正在访问用户的位置以进行 Foursquare 搜索。

所以,我大致是这样做的(类似的代码以前也有效 - 但现在我在 Galaxy Nexus 上并且仍然在 Android 4.0.2 上):

            Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_MEDIUM);

        String providerName = locationManager.getBestProvider(criteria, true);


        Location loc = locationManager.getLastKnownLocation(providerName);

        showSearchUI();
        if (loc.getTime() > (new Date().getTime() - 1000*2*60)) //2Minutes back
        {
            Log.d("demo", "LastKnownLocation is good enough, using this location!");
            startVenueSearch(loc);
        }
        else
        {
            Log.d("demo", "Requesting network location updates...");
            locationManager.requestLocationUpdates(providerName, 0, 0, this);
        }

该 Activity 实现了 LocationListener 接口(interface),因此这里是 onLocationChanged 方法:

@Override
public void onLocationChanged(Location location) {
    locationManager.removeUpdates(this);
    Log.d("demo", "Got fresh location, beginning... " + location.getLatitude() + " / " + location.getLongitude());
    //fake hybris
    //location.setLatitude(48.150098d);
    //location.setLongitude(11.546026d);

    startVenueSearch(location);

}

问题:我根本没有收到任何位置更新。我只是进行了一些修改,并将代码从直接调用 NetworkProvider 更改为基于条件的提供商搜索,但它仍然无法工作。有人吗?

最佳答案

@Override 可能是一个问题,因为 LocationListener 现在是一个接口(interface)。尝试使用

    public class MyLocationListener implements LocationListener{
    public void onLocationChanged(Location location) {
        Toast("onLocationChanged");
    }

    public void onProviderDisabled(String provider) {
        Toast("onProviderDisabled");
    }

    public void onProviderEnabled(String provider) {
        Toast("onProviderEnabled");         
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {
        Toast("onStatusChanged");
    }    
}

关于Android LocationListener.onLocationChanged 永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318319/

相关文章:

android - 在平板电脑上调整 Android 应用程序的窗口大小

android - 通过 Intent with Image (Photo) 插入联系人 (ContactsContract)

java - 我如何通过ArrayAdapter用ArrayList填充Spinner?

android,尝试打开某个 Activity 时应用程序崩溃

android - 如何使用 Mockito/PowerMockito 模拟 Kotlin 的对象?

android - Qt:未找到应用程序 .pro 文件,未构建 APK

android - 将值传递给 ViewPager fragment

android - CollapsingToolbarLayout 上的 Fling 滚动在折叠时停止

android - 来自硬件键盘的输入失去焦点

android - 基于未接来电的电话号码验证的工作