目前,我想要得到的緯度和經度的用戶當前的位置,但我的代碼可以得到,直到我在模擬器設置按下發送按鈕,但我要的是自動獲取位置和將它設置爲textview,我該怎麼辦?任何人請指教我解決這個問題,因爲我真的不熟悉位置代碼。當前位置不會自動顯示到TextView的
這裏是我的代碼
package com.example.rex.ota30;
import android.*;
import android.Manifest;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import static com.example.rex.ota30.R.id.textView;
public class Search extends AppCompatActivity implements LocationListener {
private FirebaseDatabase db;
private DatabaseReference sref, lref;
private TextView searchun, searchlo, searchla;
private String un, la, lo;
private LocationManager lm;
private LocationListener ll;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
db = FirebaseDatabase.getInstance();
sref = db.getReference("users");
lref = db.getReference("userslocation");
searchun = (TextView) findViewById(R.id.sun);
Intent i = this.getIntent();
un = i.getStringExtra("username");
searchun.setText(un);
searchlo = (TextView) findViewById(R.id.slo);
searchla = (TextView) findViewById(R.id.sla);
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, (LocationListener) this);
}
@Override
public void onLocationChanged(Location location) {
la = String.valueOf(location.getLatitude());
searchla.setText(la);
lo = String.valueOf(location.getLongitude());
searchlo.setText(lo);
lref.child(un).child("latitude").setValue(la);
lref.child(un).child("longitude").setValue(lo);
}
@Override
public void onProviderDisabled(String provider) {
Log.d("Latitude","disable");
}
@Override
public void onProviderEnabled(String provider) {
Log.d("Latitude","enable");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.d("Latitude","status");
}
}
在模擬器是你需要設置緯度和經度第一 –
或檢查實際設備 –
但我認爲模擬器已經得到了位置? –