私は、私が働いていた、ここで私が気づいたいくつかのものがあるGPS RPGと比較的同様の問題を持っていた:あなたの場所が最初に発見されるため
まず、それが原因と思われる、しばらく時間がかかることができますその問題は、場所がnullかどうかだけを確認しているためです。
ます。また、デバイスの位置情報サービスは、実際に何かを行う前に有効になっていることを確認することもできます。
private boolean doLocationsCheck(){
if(!checkLocationEnabled()){
final CharSequence[] items = {"Yes", "No"};
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setCancelable(false);
builder.setTitle("Location must be enabled to play this game! Would you like to enable it now?");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
final int i = item;
runOnUiThread(new Runnable() {
public void run() {
if(i == 0){
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
quit();
}
else{
quit();
}
}
});
}
}).show();
AlertDialog alert = builder.create();
return false;
}
else {
return true;
}
}
private boolean checkLocationEnabled(){
LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE);
boolean enabled = service.isProviderEnabled(LocationManager.GPS_PROVIDER) || service.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
return enabled;
}
私はプロバイダがそうのような接続Iセットアップ利用可能であることを確認行った後:
private void setupLocation() {
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(final Location location) {
runOnUiThread(new Runnable() {
public void run() {
mLocation = location;
//Log.d(TAG, "Latitude: " + location.getLatitude() + " - Longitude: " + location.getLongitude());
saveLocation();
}
});
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
//Can set to GPS or network, whichever is available
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
場所は、更新されるたびにグローバル変数に設定され、環境設定に保存されます。この方法では、プロバイダーが有効になっているのに場所を取得するのに時間がかかる場合でも、ユーザーはアプリが最後に保存した場所でアプリケーションを使用し続けることができます(最初のプログラムには適用されません実行されます)。
私はそこにたくさん残っていることを知っていますが、それは自明であるか、以前の答えですでに説明されていたので、本当に必要ではないと思いました。
乾杯〜
if文を入力するときにGoogle検索が準備されていないことがありますか?私はgoogle maps javascript apiを使用し、検索が完了したときに呼び出されるコールバック関数があります。どのようにアンドロイドで動作するか分からない。 –
この[リンク](http://stackoverflow.com/questions/9990209/cant-mark-while-showing-the-current-location-in-mapview/9990668#9990668)を参照してください。要件とマーカーの配置方法について説明します。 –
私はマーカーを置くことができます、私の問題は、それが始まりに良い場所をdoesntすることです。私はこのコードを私の作成メソッドにも入れました。それはちょうど私のelseステートメントにまっすぐに期待しています。それは私の許可と関係がありますか? –