获取Android GpsLocationProvider对象

时间:2011-10-17 07:57:01

标签: android locationmanager

我想进入Android上的课程GpsLocationProvider。我想调用这个类的一些方法,比如setMinTime()。 这是我的代码:

LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
GpsLocationProvider pr = (GpsLocationProvider)lm.getProvider(LocationManager.GPS_PROVIDER);

问题是GpsLocationProvider class is unresolved。我知道它位于com.android.internal.location.GpsLocationProvider,但是这样的导入也没有得到解决,import com.android.internal.*;也没有帮助解决``GpsLocationProvider`。 这是什么意思? 感谢您的任何提示。

编辑:我知道我可以通过LocationProvider改变大多数LocationManager参数,例如LocationManager.requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener),但我想要做的是有点黑客攻击。我想要另一个程序更频繁地更新gps coords。这就是为什么我不能使用LocationManager(需要监听器参数),并希望设置“全局”gps参数,这将影响另一个活动。

EDIT2:我尝试过Reno建议的反思。

LocationProvider provider = lm.getProvider(LocationManager.GPS_PROVIDER);       
 try {
    Class classGpsProvider = Class.forName("com.android.internal.location.GpsLocationProvider");
        classGpsProvider.cast(provider);
    ...

但遗憾的是,对lm.getProvider()的调用会返回DummyLocationProvider,并且该行为就像GpsLocationProvider的影子一样。

1 个答案:

答案 0 :(得分:1)

如果没有reflection

,您可能无法做到这一点

您应该使用导入android.location.*