1
GoogleマップとGPSを扱うアンドロイドアプリに取り組んでいます。地図を表示する近接警報アプリは、ユーザーからのタッチを受け取り、その場所の警報を設定します。私はEditTextを追加して、目的地からどのくらい離れているかをユーザに通知するようにしました。しかし、ユーザーが何を入力しても、アプリはその値を2kmとしています。 GPSの代わりにセルタワー情報を使用しているからですか?アプリの開発に役立つチュートリアルがあれば、それを共有してください。ユーザが地図上の場所を選択すると、ユーザに通知距離を入力させるための新しい画面が表示されます。しかし、GPSアイコンは、アプリが地図画面からユーザー入力画面に移動すると消えます。何が問題なの?これは、アラームの設定を扱う部分です。アンドロイドアプリが新しい画面に切り替わるとGPS接続が失われる
mSetAlarm.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Get the distance from the shared preferences
SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
String distanceStr = preferences.getString("distance", "0");
double distance = Double.parseDouble(distanceStr);
LocationManager locationManager = (LocationManager) getBaseContext()
.getSystemService(Context.LOCATION_SERVICE);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(LocationInfoActivity.this,
MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
getBaseContext().getApplicationContext(), 234324243,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
MyLocationListener locationListener = new MyLocationListener(
locationManager, preferences, alarmManager,
pendingIntent);
if (distance < Double.parseDouble(i)) {
alarmManager.set(AlarmManager.RTC_WAKEUP, System
.currentTimeMillis(), pendingIntent);
locationManager.removeUpdates(locationListener);
} else if (distance < 4.0) {
WakeMeUtill.requestLocationUpdates(locationManager, 0, 0,
locationListener);
} else {
double quaterDistance = (distance * 3)/4;
WakeMeUtill.requestLocationUpdates(locationManager, 0,
(float) quaterDistance * 1000, locationListener);
}
}
});
}
お使いのデバイス/ Androidのバージョンはどれですか? – Evgeny