Autore Topic: Android Wear Getting Started  (Letto 1674 volte)

Offline Harry551

  • Nuovo arrivato
  • *
  • Post: 7
  • Tapatalk User
  • Respect: 0
    • Mostra profilo
Android Wear Getting Started
« il: 28 Agosto 2014, 19:43:03 CEST »
0
Ciao a tutti,

Per procedere con lo sviluppo della mia applicazione vorrei integrare il supporto ad Android Wear solo che attualmente sono completamente all'oscuro di come possa fare anche la più piccola operazione con questa nuova piattaforma. Ho dato un'occhiata in giro, le guide ufficiali non mi hanno chiarito le idee e le poche guide trovate sono poco complete e molto confusionarie. Mi rivolgo a voi quindi per cercare di addentrarmi nello sviluppo di questo progetto. L'obbiettivo finale che mi prefisso è quello di riuscire a trasferire da telefono a smartwatch un DB SQLite contenente dei dati relativi alla mia applicazione e sincronizzarlo se vengono registrati dei cambiamenti. Volendo pero procedere per gradi al momento mi andrebbe bene riuscire a stabilire se lo smartwatch è connesso o meno tanto per iniziare a famigliarizzare.
Potete suggerirmi qualche guida comprensibile o guidarmi voi stessi in questi punti dello sviluppo?
grazie 1000 attendo con ansia le vostre risposte

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Android Wear Getting Started
« Risposta #1 il: 28 Agosto 2014, 23:17:07 CEST »
0
Per iniziare devi passare di qui:
Building Apps for Wearables | Android Developers

Per sapere se è connesso.
Devi usare il GoogleApiClient e il metodo Wearable.NodesApi.getConnnectedNodes()
Qualcosa di simile a questo. Guarda il resolveNode.

Codice (Java): [Seleziona]
public class MyActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launch);
 
        //Connect the GoogleApiClient
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Wearable.API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();
     }

   @Override
    protected void onStart() {
        super.onStart();
        mGoogleApiClient.connect();
   }
 
    /*
     * Resolve the node = the connected device to send the message to
     */

    private void resolveNode() {
 
        Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
            @Override
            public void onResult(NodeApi.GetConnectedNodesResult nodes) {
                for (Node node : nodes.getNodes()) {
                   mNode = node;
                }
            }
        });
    }
 
 
    @Override
    public void onConnected(Bundle bundle) {
        resolveNode();
    }
}

Possibili alternative sono quelle di usare un WearableListenerService e fare un override dei metodi onPeerConnected(Node peer) e onPeerDisconnected(Node peer). (ma non lo consiglio).

Sul discorso SQLite.... perchè vuoi trasferire i dati? Quale è la finalità?
Puoi tranquillamente tenere il SQLite sull'app master, e quando succede qualcosa inviare un messaggio al wear per far scattare l'evento che ti serve.

Offline Harry551

  • Nuovo arrivato
  • *
  • Post: 7
  • Tapatalk User
  • Respect: 0
    • Mostra profilo
Re:Android Wear Getting Started
« Risposta #2 il: 28 Agosto 2014, 23:25:32 CEST »
0
Mi serve trasferire i dati in quanto devono essere accessibili e quindi visualizzati sia su telefono che su smartwatch... se non tutti almeno parte di essi sicuramente... ps grazie del suggerimento domani faccio qualche prova

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Android Wear Getting Started
« Risposta #3 il: 28 Agosto 2014, 23:30:29 CEST »
0
Per visualizzarli sull'orologio, puoi sempre chiederli al mobile.
Tieni conto che la videata sul wear deve essere snella, quindi non visualizzerai mai la stessa videata nei due screen.

Offline Harry551

  • Nuovo arrivato
  • *
  • Post: 7
  • Tapatalk User
  • Respect: 0
    • Mostra profilo
Re:Android Wear Getting Started
« Risposta #4 il: 28 Agosto 2014, 23:32:54 CEST »
0
questo sicuramente... valutero piu avanti come agire anche se sarebbe comodo poterli sincronizzare rendendo l'app per wear parzialmente standalone

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Android Wear Getting Started
« Risposta #5 il: 29 Agosto 2014, 00:55:14 CEST »
0
questo sicuramente... valutero piu avanti come agire anche se sarebbe comodo poterli sincronizzare rendendo l'app per wear parzialmente standalone

Non l'ho mai fatto ma penso che sia abbastanza sensato dire che devi usare un observer/listener sul db (meglio con un contentProvider).
A quel punto invii un messaggio con le api al wear con i dati da inserire/cancellare.
Sul wear on un WearableListenerService lo intercetti ed esegui l'operazione.

Offline Harry551

  • Nuovo arrivato
  • *
  • Post: 7
  • Tapatalk User
  • Respect: 0
    • Mostra profilo
Re:Android Wear Getting Started
« Risposta #6 il: 29 Agosto 2014, 12:46:31 CEST »
0
Sono riuscito a distinguere se lo SmartWatch è connesso o meno seguendo il tuo suggerimento (se serve a qualcuno posto il codice leggermente modificato). Adesso sto provando il WearableListenerService e sono riuscito a far comunicare i 2 dispositivi tramite lo scambio di messaggi. Per quanto riguarda il db invece nell'app principale ho gia implementato nella classe che mi interessa trasferire l'interfaccia Parcelable per poterla passare attraverso intent. Si puo utilizzare lo stesso metodo per trasferire l'oggetto su SmartWatch?

Offline oscar.peli

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note II
  • Play Store ID:
    Android Wear Developer
  • Sistema operativo:
    Mac OSX
Re:Android Wear Getting Started
« Risposta #7 il: 19 Settembre 2014, 12:02:15 CEST »
0
Ti consiglio di dare una occhiata agli esempi contenuti nell'SDK.
C'è un esempio specifico (DataLayer) che ti mostra come far passare dati da e per l'orologio.
Nella mia prima app io ho usato semplicemente un ArrayList di stringhe che poi mi sono decodificato lato orologio.
Tieni presente che i dati che puoi trasferire non sono una enormità.