2011-05-20 238 views

回答

1

我有一個IDEA項目,並沒有這個問題。您是否檢查過您正在導入所有適當的軟件包?

import android.location.Criteria; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.location.GpsStatus; 

當你右擊/到/宣言的LocationManager你應該看到下面的代碼:

package android.location; 

public class LocationManager { 
    public static final java.lang.String NETWORK_PROVIDER = "network"; 
    public static final java.lang.String GPS_PROVIDER = "gps"; 

更新

確定。我知道這裏發生了什麼。你正在做的是將一個LocationManager.GPS_PROVIDER(實際上是一個字符串)分配給一個LocationProvider對象。因此不兼容的類型錯誤。

是否有你想實例化LocationProvider對象的原因?看看LocationManager API,你並不需要其中的一個。 API採用常量字符串(GPS_PROVIDER,NETWORK_PROVIDER等)並在內部實例化相應的LocationProvider。如果您確實需要LocationProvider實例,則可以使用getProvider方法從LocationManager中取回它。

另一個更新

所以它看起來像OP中遇到的第一個地方這個問題的原因是,在Obtaining User Location documentation示例代碼是錯誤的:

LocationProvider locationProvider = LocationManager.NETWORK_PROVIDER; 
// Or use LocationManager.GPS_PROVIDER 

Location lastKnownLocation = locationManager.getLastKnownLocation(locationProvider); 

LocationProvider是一個抽象超類,你不應該直接實例化這些東西。相反,您將LocationManager.type_of_provider_here傳遞給LocationManager並實例化一個實現該抽象類的對象。因此,樣品應該是:

Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
+0

我有'一切進口android.location *;' – LuxuryMode 2011-05-20 01:59:49

+0

@LuxuryMode OK。顯然不是這樣。我正在擺弄我的項目,看看我能否重現問題,然後倒退。我會讓你知道我怎麼走。 – RedBlueThing 2011-05-20 02:03:03

+0

@LuxuryMode當你在LocationManager上聲明時會發生什麼? (見我的更新)。 – RedBlueThing 2011-05-20 02:11:08