【问题标题】:Problem with reciving information from GPS on Android在 Android 上从 GPS 接收信息的问题
【发布时间】:2010-08-28 07:56:55
【问题描述】:

我刚开始玩安卓设备,从 GPS 监听器获取更新时遇到问题。

首先是代码,所以你可以检查我是否做对了所有事情:

在 AndroidManifest.xml 我有:

<uses-permission android:name="android.permission.LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />

位置监听器被定义为 Activity 的私有成员:

private LocationListener mLocationListener = new LocationListener()
{

    @Override
    public void onLocationChanged(Location pLocation) {
        double lLatitude = pLocation.getLatitude();
        double lLongitude = pLocation.getLongitude();
        mGpsTextView.setText ("Longitude" + Double.toString(lLongitude) + " Latitude: " + Double.toString(lLatitude));
    }

    @Override
    public void onProviderDisabled(String provider) {
        mGpsTextView.setText ("Provider disabled");
    }

    @Override
    public void onProviderEnabled(String provider) {
        mGpsTextView.setText ("Provider enabled");
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        switch (status)
        {
        case LocationProvider.OUT_OF_SERVICE:
            mGpsTextView.setText("GPS out of service");
            break;
        case LocationProvider.TEMPORARILY_UNAVAILABLE:
            mGpsTextView.setText("GPS temorarily unawalible");
            break;
        case LocationProvider.AVAILABLE:
            mGpsTextView.setText("GPS avalible");
            break;
        default:
            mGpsTextView.setText("GPS crazy");
        }

   }

};

在“onResume”方法中,我获取 LocationManager 并注册我的监听器:

    mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    mLocationManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0, 0.0f, mLocationListener);

在“onPause”中,我删除了监听器

    mLocationManager.removeUpdates(mLocationListener);

然后,当我使用 geo fix 在模拟器上测试代码时 - 一切正常。但是当我在手机上部署我的应用程序时,代码无法正常工作。当提供者被禁用时,“mGpsTextView”上的文本是“提供者被禁用”——所以没关系。但是,当我在启用 gps 提供程序的情况下运行应用程序时,“mGpsTextView”上的文本并没有收到任何更新(使用调试器检查 - 未调用 onLocationChanges)。

知道可能出了什么问题吗?

【问题讨论】:

  • 您是否在此处粘贴了错误的代码?您似乎没有在任何地方提供 LocationListener。
  • 是的,我只是复制粘贴了错误的代码
  • ph,问题可以结束了 - 我刚刚离开设备 30 分钟,它开始接收更新。廉价手机的魔力……抱歉;)

标签: android


【解决方案1】:

您为什么使用 Sensor.TYPE_ACCELEROMETER?

应该是这样的:

notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 100.0f, locationListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0.0f, locationListener);

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多