我正在开发一个处理谷歌地图和 GPS 的安卓应用程序。它是一个显示地图的接近警报应用程序,接受用户的触摸并为该位置设置警报。我添加了一个 EditText 来接受用户希望收到通知的距离有多远。但无论用户输入什么,该应用程序都将该值视为 2 公里。是因为它使用手机信号塔信息而不是 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);
}
}
});
}