Φωτογραφία Γιάννης Παναγής
Επικοινωνία BroadcastReceiver με MapActivity
από Γιάννης Παναγής - Tuesday, 19 June 2012, 7:29 AM
 
Ποιος τρόπος προτείνεται για επικοινωνία; Υπάρχει κάτι σχετικό στις σημειώσεις;

Απ' ότι έχω δει στο web αυτό που κάνουν είναι να δημιουργεί η κλάση που διαβάζει το SMS ένα Intent που να απευθύνεται στην MapActivity η οποία με τη σειρά της κάνει register μια inner class για να το κάνει handle

http://stackoverflow.com/questions/10216151/updating-google-maps-marker-from-a-broadcast-sms-receiver


 
Φωτογραφία Χρήστος Μαργώνης
Απάντηση: Επικοινωνία BroadcastReceiver με MapActivity
από Χρήστος Μαργώνης - Tuesday, 19 June 2012, 7:41 AM
 
Μάλιστα, πολύ ωραία υλοποίηση αυτή.
Εγώ έκανα κάτι διαφορετικό, το pendingIntent που φεύγει από τον BroadcastReceiver μου και πάει στο notification bar,
κουβαλάει όλη τη σχετική πληροφορία μαζί του, οπότε όταν ο χρήστης κλικάρει το notification, γίνεται update ο χάρτης.

Επίσης το notification μου κάνει override τα default sms notifications του λειτουργικού (μόνο όταν το sms είναι του ανάλογου φορμάτ).

Στις σημειώσεις δεν υπάρχει κάτι σχετικό νομίζω.
Φωτογραφία Βασίλης Κόλιας
Απάντηση: Επικοινωνία BroadcastReceiver με MapActivity
από Βασίλης Κόλιας - Wednesday, 20 June 2012, 9:50 AM
 

Θα μπορούσες επίσης να κάνεις και κάτι άλλο:

έστω οτι έχεις τη GeocodingActivity και την SmsMonitor.

1. φτιάχνεις μια public static μεταβλητή τύπου "GeocodingActivity" εντός της GeocodingActivity π.χ. pointerActivity.

2. την αρχικοποιείς με this στο onCreate της Activity.

3. Μετά στην "SmsMonitor" όταν λάβει sms μπορείς να προσπελάσεις οποιοδήποτε μέλος της. Mεταξύ αυτών και το MapView. π.χ.

GeocodingActivity.pointerActivity.findViewById(...)

Φωτογραφία Κωνσταντίνος Κανελλόπουλος
Απάντηση: Επικοινωνία BroadcastReceiver με MapActivity
από Κωνσταντίνος Κανελλόπουλος - Wednesday, 20 June 2012, 11:22 AM
 
Το δοκίμασα αλλά δεν μου πρόσβαση στην getOverlays(). Η αρχικοποίηση γίνεται με pointerActivity = this;
Φωτογραφία Παναγιώτης Καρανικολόπουλος
Απάντηση: Επικοινωνία BroadcastReceiver με MapActivity
από Παναγιώτης Καρανικολόπουλος - Wednesday, 20 June 2012, 12:22 PM
 
Αυτό δεν είναι αντίθετο με τους 'κανόνες για σωστό κώδικα' αντικειμενοστραφούς προγραμματισμού; Δηλαδή να έχουμε πρόσβαση σε οποιοδήποτε μέλος της κλάσης εκτός κλάσης;
Φωτογραφία Βασίλης Κόλιας
Απάντηση: Επικοινωνία BroadcastReceiver με MapActivity
από Βασίλης Κόλιας - Wednesday, 20 June 2012, 8:48 PM
 

Γενικά υπάρχουν πρίν ακούστικαν καλύτερες λύσεις. Πάντως για την συγκεκριμένη έχω να πω οτι δεν έχεις πρόσβαση σε οποιοδήποτε μέλος μιας κλάσης εκτός κλάσης. Κλασικά δεν έχεις στα private, οτι ισχύει κανονικά δηλαδή. Δεν είναι αντίθετο με τους κανόνες αντικειμενοστραφούς προγραμματισμού. Ίσως όμως είναι μια προσέγγιση out of the book αν θέλεις να γράψεις απόλυτα σωστό κώδικα ίσως να έγρραφες κάτι σαν:

GeocodingActivity

=================

...

private static GeocodingActivity myActivity = null;

...

public static GeocodingActivity getInstance(){
return myActivity;
}

...

SmsMonitor

==========

...

GeocodingActivity mainActivity = GeocodingActivity.getInstance();

...

List<Overlay> mapOverlays = ((MapView)myActivity.findViewById(R.id.mapview)).getOverlays();

...

Ελπίζω έτσι να απάντησα και στην προηγούμενη ερώτηση.