我正在研究GPS部分和标准,我可以将精度设置为ACCURACY_FINE,ACCURACY_MEDIUM等。但是,由于某些原因,我不断收到强制关闭错误如果将其设置为ACCURACY_HIGH的标准。关于什么可能导致它的任何想法?Android GPS ACCURACY_HIGH会导致关闭?
我的继承人清单,即时通讯相当确信一切正常,因为我可以使用不同的标准:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
这里是我的日志:
07-05 08:51:48.641: W/dalvikvm(1040): threadid=1: thread exiting with uncaught exception (group=0x40015578)
07-05 08:51:48.657: E/AndroidRuntime(1040): FATAL EXCEPTION: main
07-05 08:51:48.657: E/AndroidRuntime(1040): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jetdelivery.mobile/com.jetdelivery.mobile.statuspage}: java.lang.IllegalArgumentException: accuracy=3
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.os.Looper.loop(Looper.java:130)
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.app.ActivityThread.main(ActivityThread.java:3687)
07-05 08:51:48.657: E/AndroidRuntime(1040): at java.lang.reflect.Method.invokeNative(Native Method)
07-05 08:51:48.657: E/AndroidRuntime(1040): at java.lang.reflect.Method.invoke(Method.java:507)
07-05 08:51:48.657: E/AndroidRuntime(1040): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
07-05 08:51:48.657: E/AndroidRuntime(1040): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
07-05 08:51:48.657: E/AndroidRuntime(1040): at dalvik.system.NativeStart.main(Native Method)
07-05 08:51:48.657: E/AndroidRuntime(1040): Caused by: java.lang.IllegalArgumentException: accuracy=3
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.location.Criteria.setAccuracy(Criteria.java:223)
07-05 08:51:48.657: E/AndroidRuntime(1040): at com.jetdelivery.mobile.statuspage.onCreate(statuspage.java:125)
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-05 08:51:48.657: E/AndroidRuntime(1040): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
07-05 08:51:48.657: E/AndroidRuntime(1040): ... 11 more
我使用的是Android 2.3开发。 5固件。谢谢!
嗯,也许我错误地使用了ACCURACY_HIGH。我想问你为什么ACCURACY_MEDIUM适合我,但ACCURACY_HIGH不? – 2012-07-05 19:22:21
'ACCURACY_MEDIUM'是'0x00000002',所以'ACCURACY_COARSE'; 'ACCURACY_LOW'是'0x00000001','ACCURACY_FINE'也是。 鉴于'ACCURACY_HIGH'是'0x00000003' – nullpotent 2012-07-05 19:25:26
的确如此,但仅仅因为它们是具有等价值的常量并不意味着您应该使用错误的...这种路径会导致混淆和不可读。 COARSE和FINE用于一般位置,而其他用于高度,速度等。 – matt5784 2012-07-05 20:49:57