私のアプリケーションでは、ユーザーがボタンをクリックしたら電話の場所を取得する必要があります。これが私のコードです。
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");
}
}
});
}
}
しかし、その場所は返されません。「場所が利用できません」という文字列をテキストTextViewに追加するだけです。nullである最後に保存された場所を返しているためだと私は知っています。しかし、場所が一度だけ必要なため、LocationListener を使用したくありません。つまり、ユーザーがアプリを起動したとき。助けてください。