2012-04-11 2 views
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); 
      } 
     } 
    }); 
} 
+0

お使いのデバイス/ Androidのバージョンはどれですか? – Evgeny

答えて

0

はあなたのコードを確認してくださいonPause()メソッド

onPause() 
{ 
    gpsLocationManager.removeupdates() 
} 

にこの行を書いたあなたのコードであってもよいです。

これが問題でない場合は、もう少し詳しくお聞かせください。

関連する問題