我已经建立了一个简单的应用程序,从这里获得位置(这里的开发者支持给予了一些帮助),问题是
answered here
此代码在我的手机上运行良好,可以在我的日志中每分钟生成一次地理位置。
我现在正试图在我的目标平板电脑上运行此代码。平板电脑很旧(运行Android5.1),没有GPS,也没有SIM卡或电话连接。唯一可能的定位方法是使用wifi。我已经在平板电脑上测试了here测试应用程序,它根据wifi连接找到了一个很好的近似位置——这是我试图复制的。
当我试图用GPS定位方法或GPS网络或网络初始化PositionManager时,我得到了相同的错误
对于这些行:
PositioningManager pm = PositioningManager.getInstance();
PositioningManager.LocationStatus ls = pm.getLocationStatus(PositioningManager.LocationMethod.GPS);
Log.i("Position", "Setting up positioning");
if (ls == PositioningManager.LocationStatus.AVAILABLE) {
Log.i("Position", "Positioning is available");
} else {
Log.w("Position", "Positioning not available right now: " + ls.toString());
}
boolean ret = pm.start(PositioningManager.LocationMethod.GPS);
Log.i("Position", "Positioning start returns " + ret);
我得到这些日志:
01-27 06:00:21.656 16636-16636/? I/Position: Setting up positioning
01-27 06:00:21.657 16636-16636/? W/Position: Positioning not available right now: OUT_OF_SERVICE
01-27 06:00:21.660 16636-16636/? W/System.err: java.lang.IllegalArgumentException: provider doesn't exist: network
01-27 06:00:21.661 16636-16636/? W/System.err: at android.os.Parcel.readException(Parcel.java:1550)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.os.Parcel.readException(Parcel.java:1499)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:582)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.location.LocationManager.requestLocationUpdates(LocationManager.java:899)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.location.LocationManager.requestLocationUpdates(LocationManager.java:500)
01-27 06:00:21.661 16636-16636/? W/System.err: at com.here.android.mpa.internal.v.a(DeviceLocation.java:117)
01-27 06:00:21.661 16636-16636/? W/System.err: at com.here.android.mpa.internal.ea.a(PositioningManagerImpl.java:224)
01-27 06:00:21.661 16636-16636/? W/System.err: at com.here.android.mpa.common.PositioningManager.start(PositioningManager.java:153)
01-27 06:00:21.661 16636-16636/? W/System.err: at com.company.app.MainActivity.setUpPositioning(MainActivity.java:63)
01-27 06:00:21.661 16636-16636/? W/System.err: at com.company.app.MainActivity.onRequestPermissionsResult(MainActivity.java:137)
01-27 06:00:21.661 16636-16636/? W/System.err: at com.company.app.MainActivity.checkPermissions(MainActivity.java:108)
01-27 06:00:21.661 16636-16636/? W/System.err: at com.company.app.MainActivity.onCreate(MainActivity.java:39)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.app.Activity.performCreate(Activity.java:5990)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.app.ActivityThread.access$800(ActivityThread.java:151)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.os.Looper.loop(Looper.java:135)
01-27 06:00:21.661 16636-16636/? W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5258)
01-27 06:00:21.661 16636-16636/? W/System.err: at java.lang.reflect.Method.invoke(Native Method)
01-27 06:00:21.661 16636-16636/? W/System.err: at java.lang.reflect.Method.invoke(Method.java:372)
01-27 06:00:21.661 16636-16636/? W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
01-27 06:00:21.661 16636-16636/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
01-27 06:00:21.666 16636-16636/? I/Position: Positioning start returns true
每一分钟我都会检查位置
GeoPosition pos = PositioningManager.getInstance().getPosition();
它是空的。如果我将locationMethod设置为空,我不会得到异常,但仍然不会得到任何地理位置。
如何在他们的测试应用程序中管理它,以便仅从wifi获取位置?