В моем приложении мне нужно получить телефон, как только пользователь нажмет кнопку. Вот мой код.Расположение телефона, когда пользователь нажимает кнопку
import android.location.*;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private double latitude;
private double longitude;
private Button sendrequest;
private TextView text;
private LocationManager locationManager;
private String provider;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setViews();
}
private void setViews() {
text = (TextView) findViewById(R.id.textView);
sendrequest = (Button) findViewById(R.id.button);
sendrequest.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
if (location != null) {
text.append("Provider " + provider + " has been selected.");
//onLocationChanged(location);
} else {
text.append("Location not avilable");
}
}
});
}
}
Но его не возвращает мне место. Его просто добавляет строку «Location not available» в текст TextView. Я знаю, что это потому, что он возвращает последнее сохраненное местоположение, которое равно null. Но я не хочу использовать LocationListener, так как хочу, чтобы это место было только один раз. т.е. когда пользователь запускает приложение. Пожалуйста помоги.
Я предполагаю, что вы используете это на эмуляторе. Если это AFAIK, он всегда возвращает null на эмулятор. Вы пробовали его на самом устройстве? –
Да. Я сделал. Тот же результат. –