这似乎是一个普遍的问题,但我真的不明白为什么它会发生,即使我读了很多类似的问题.
我在模拟器设备上玩一个基本的位置类,我设置了所有内容 - 权限(FINE和COARSE),我在DDMS中设置了坐标我也尝试使用telnet然后,但无论它总是崩溃与nullpointer与getlastknownlocation一致的例外,这里有什么想法吗?
public class MainActivity extends Activity implements LocationListener { private static LocationManager ok; private Location L; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ok=(LocationManager)this.getSystemService(ok.GPS_PROVIDER); L=ok.getLastKnownLocation(ok.GPS_PROVIDER); } @Override public void onLocationChanged(Location Loc) { try { double latop=Loc.getLatitude(); double longe=Loc.getLongitude(); Log.i("OK", "and"+longe+""+latop); } catch (NullPointerException e) { } }
CommonsWare.. 8
getLastKnownLocation()
null
如果没有应用程序最近请求您所需提供商的位置修复,则通常会返回.
在模拟器上,它似乎更进了一步:除非你的应用程序调用了一个位置,否则你没有得到一个位置requestLocationUpdates()
.
getLastKnownLocation()
如果您想要获得实际的可能性,使用的一般模式Location
是使用requestLocationUpdates()
并removeLocationUpdates()
确保LocationManager
通过您选择的提供商积极寻找位置.当然,你也可以使用LocationListener
和onLocationChanged()
,而不是getLastKnownLocation()
,如果你愿意的选择.
getLastKnownLocation()
null
如果没有应用程序最近请求您所需提供商的位置修复,则通常会返回.
在模拟器上,它似乎更进了一步:除非你的应用程序调用了一个位置,否则你没有得到一个位置requestLocationUpdates()
.
getLastKnownLocation()
如果您想要获得实际的可能性,使用的一般模式Location
是使用requestLocationUpdates()
并removeLocationUpdates()
确保LocationManager
通过您选择的提供商积极寻找位置.当然,你也可以使用LocationListener
和onLocationChanged()
,而不是getLastKnownLocation()
,如果你愿意的选择.