我有一个相机类,它使用SurfaceHolder等来保存相机的图片。我输入上面的SurfaceView TextView。而我想问的是如何使用从GPS获得的纬度和经度值更新TextView中的文本? 我把编码放到当前位置并更新位置
答案 0 :(得分:1)
使用LocationManager中的requireLocationUpdates。 通常这个过程转到后台。
答案 1 :(得分:1)
对您的代码进行以下更改并尝试。
textView = (TextView)findViewById(R.id.textViewId);
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
@Override
public void onLocationChanged(Location loc) {
String location = "Last known location\nLatitude = "+loc.getLatitude()+"\nLongitude = "+loc.getLongitude();
textView.setText(location);
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText( getApplicationContext(), "GPS Disabled", Toast.LENGTH_SHORT ).show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText( getApplicationContext(), "GPS Enabled", Toast.LENGTH_SHORT ).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
Toast.makeText( getApplicationContext(), "GPS Status Changed", Toast.LENGTH_SHORT ).show();
}
});
在清单文件中,您必须使用以下权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
我希望你明白并帮助你。
答案 2 :(得分:0)
我发现问题正在解决..呵呵
private void updateWithNewLocation(Location location){
String latLongString;
TextView longlati;
longlati = (TextView)findViewById(R.id.longlati);
if(location != null){
double lat = location.getLatitude();
double lng = location.getLongitude();
latLongString = "Lat: " + lat + "\nLong: " + lng;
}else{
latLongString = "No Location found";
}
longlati.setText(" " + latLongString);
}
抱歉我的愚蠢问题。我只是有点压力&gt; _&lt;