11
votes

Portable.nodeapi.getConnectedNodesds résultat jamais appelé

Je développe une application pour l'usure Android. Sous le code avec explication du problème xxx

upd upd: je résolvez problème en éteignant et allumez mon téléphone à nouveau (Nexus 5) peut être un moyen plus facile de résoudre le problème?

essayé d'ajouter .await () et asyncaptask, mais le résultat est le même


5 commentaires

J'ai utilisé ce code pour détecter lorsque le portable a été connecté: davistechyinfo.blogspot.com/2014/07/...


@Adavis S'il vous plaît lire la question avec soin, onResult () jamais appelé (fil jamais fini)


@Dooplaye Avez-vous appelé Connect () (et attendez onconnected () ) sur mgoogleapiclient?


@MatiaSH Voir le code, mgoogleapiclient.ischonnectif () retourne vrai;


J'ai un problème lorsque vous utilisez Await () en asyncctage, mais pas toujours. Parfois ça marche. Alors j'attends une réponse aussi. On dirait un bug d'usure - mais une solution de contournement serait bien.


4 Réponses :


3
votes

Je pense que vous ne pouvez appeler que getconnectednodes une fois par connexion Googleapiclient. Vous souhaitez mettre en cache l'ID de nœud la première fois que vous obtenez le résultat, puis utilisez les rappels surconnexion / déconnecté () pour suivre si l'ID de nœud est toujours pertinent.


1 commentaires

Bonne suggestion, mais il y a un autre problème. OnpeedConnected / déconnecté () non appelé - plus. google.com/+nathaschwermann/posts/1rs9RS99S905Qte



1
votes

Si vous consultez les échantillons de Google Wear, il y a un projet appelé FindMyPhone. Je pense que la façon dont ils résolvent votre problème est beaucoup plus propre. Ils vérifient si l'appareil est connecté ou déconnecté avec un service d'arrière-plan.

<service android:name=".DisconnectListenerService" >
    <intent-filter>
        <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
    </intent-filter>
</service>


1 commentaires

"com.google.android.gms.warable.bind_listener" est maintenant obsolète



0
votes

Je l'ai travaillé:

Init le client Google API: P>

@Override
protected void onStop() {
    super.onStop();
    Log.d(TAG, "onStop");
    if (mGoogleApiClient != null)
        if (mGoogleApiClient.isConnected()) mGoogleApiClient.disconnect();
}


0 commentaires

0
votes

Voici un code complet de la façon de vérifier:

Ajoutez ceci au fichier de gradle: xxx

et utilisez cette fonction pour vérifier si un portable est connecté: xxx


0 commentaires