0

このコードでは、経度と緯度を取得し、それらを文字列に変換して画面と SMS で使用したいので、新しいクラスを実行する必要があります。または、このコードは変更されたばかりです

場所に対してすべての許可を使用しました

public class MainActivity extends Activity implements LocationListener  {

    Location location; // location

    LocationManager locationManager;
    public String LatTxt;
    public String LonTxt;
    public Double latitude; // latitude
    public Double longitude; // longitude
    TextView latTextView = (TextView) findViewById(R.id.Latitude_Txt);
    TextView lonTextView = (TextView) findViewById(R.id.Longitude_Txt);
    // The minimum distance to change Updates in meters
    private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters
    // The minimum time between updates in milliseconds
    private static final long MIN_TIME_BW_UPDATES = (long) (1000 * 60 * 0.25); // 0.25
                                                                                // minute

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        LocationListener locListener = new MyLocationListener();
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES,locListener);

        lonTextView.setText(" " + location.getLongitude());
        latTextView.setText(" " + location.getLatitude());

    }

    @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub
        latitude = location.getLatitude();
        LatTxt = latitude.toString();
        longitude = location.getLongitude();
        LonTxt = longitude.toString();
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

}






<TextView
                    android:id="@+id/Latitude_Txt"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@android:color/white"
                    android:gravity="center_horizontal"
                    android:text="Latitude"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />
            </LinearLayout>
4

2 に答える 2

0

置く

lonTextView.setText(" " + location.getLongitude());
latTextView.setText(" " + location.getLatitude());

@Override
public void onLocationChanged(Location location) {


}

で印刷しようとしlocationましprotected void onCreate(Bundle savedInstanceState)locationが、開始されません。

ところで、行の前に追加します:

 lonTextView.setText(" " + location.getLongitude());
 latTextView.setText(" " + location.getLatitude());

このコードは、古い場所を初期化します

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES,this); 
Criteria criteria = new Criteria();

locationManager.getLastKnownLocation(provider);
String provider = locationManager.getBestProvider(criteria, false);
location = locationManager.getLastKnownLocation(provider);

そしてあなたのrequestLocationUpdates

[編集]

 public class MainActivity extends Activity implements LocationListener  {

Location location; // location

LocationManager locationManager;
public String LatTxt;
public String LonTxt;
public Double latitude; // latitude
public Double longitude; // longitude
TextView latTextView = (TextView) findViewById(R.id.Latitude_Txt);
TextView lonTextView = (TextView) findViewById(R.id.Longitude_Txt);
// The minimum distance to change Updates in meters
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters
// The minimum time between updates in milliseconds
private static final long MIN_TIME_BW_UPDATES = (long) (1000 * 60 * 0.25); // 0.25
                                                                            // minute

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    LocationListener locListener = this;
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES,locListener);



}

@Override
public void onLocationChanged(Location location) {

    // TODO Auto-generated method stub
    latitude = location.getLatitude();
    LatTxt = latitude.toString();
    longitude = location.getLongitude();
    LonTxt = longitude.toString();

    lonTextView.setText(" " + location.getLongitude());
    latTextView.setText(" " + location.getLatitude());
}

@Override
public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

 }
}
于 2013-09-12T10:24:27.103 に答える
0

新しい GPS 座標を受信したとき。関数 onLocationChanged が呼び出されます。そこでGPS座標操作を行う必要があります

于 2013-09-12T10:26:06.337 に答える