当我点击活动布局中的一个按钮时,我试图获得显示的 GPS 坐标。下面是单击按钮时调用的方法:
public void getLocation(View view) {
TextView tv = (TextView) findViewById(R.id.gps_coord_view);
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
tv.setText("Latitude: " + loc.getLatitude() + "\nLongitude: " + loc.getLongitude());
}
我收到一个错误,说
调用需要可能被用户拒绝的权限。代码应该显式检查权限是否可用。
我已经在 AndroidManifest
中授予了这些权限。当我在调用 lm.getLastKnownLocation
之前添加以下内容时,这个错误会得到解决,应用程序也会编译:
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
然而,当我点击调用 getLocation 的按钮时,应用程序崩溃了。发生什么事了?有没有更好/更简单的方法来获取设备的 GPS 坐标?