0

メイン アクティビティでロケーション リスナーを開始し、メインの拡張である他のクラスとロケーションの更新を共有したい。いくつかの異なるバリエーションを試しましたが、何もうまくいかないようです。Intent が変更されるたびにトースト メッセージが表示され、Eclipse で GPS が更新されると、データが必要になります。少しの助けや別の視点を探しています。Android の専門知識は限られていますが、これは別の Thread または AsyncTask ではなくメイン アクティビティで実行できると考えています。お手伝いありがとう!

ここでは、メインに設定されているロケーション マネージャーを示します。

private void initSystems() {
    // Location Manager
    LocationManager lm;
    String context = Context.LOCATION_SERVICE;
    lm = (LocationManager)getSystemService(context);
    // Set up Location Manager
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);
    criteria.setCostAllowed(true);
    criteria.setPowerRequirement(Criteria.POWER_LOW);
    Provider = lm.getBestProvider(criteria, true);
    Location location = lm.getLastKnownLocation(Provider);
    updateWithNewLocation(location);
    lm.requestLocationUpdates(Provider, 100, 10,locListener);
}

ここにリスナーと更新があります

private final LocationListener locListener = new LocationListener() {
    public void onLocationChanged(Location loc) {
        updateWithNewLocation(loc);
       Toast.makeText(getApplicationContext(), "onLocationChanged", Toast.LENGTH_SHORT).show();
    }

    public void onProviderDisabled(String Provider){
        updateWithNewLocation(null);
    }

    public void onProviderEnabled(String Provider){ }
    public void onStatusChanged(String Provider, int status, Bundle extras){
        Toast.makeText(getApplicationContext(), "onStatusChanged", Toast.LENGTH_SHORT).show();  
    }
};

private double updateWithNewLocation(Location loc) {
    double loc_update = 0;
    if (loc != null) {
        lat = loc.getLatitude();
        lng =- loc.getLongitude();
        loc_update = lat+lng;
        Toast.makeText(getApplicationContext(), "Lat & Long" + lat + " "+lng, Toast.LENGTH_LONG).show();
        Log.d(DEBUG_TAG, "Lat & Long " + lat + " "+lng);
        return loc_update;
    }
    else {
        Toast.makeText(getApplicationContext(), "Unable to Obtain GPS Data", Toast.LENGTH_SHORT).show();
        Log.d(DEBUG_TAG, "Unable to Obtain GPS Data");
    }
    return loc_update;
}
4

0 に答える 0