Utiliser Android GPS pour détecter et se connecter avec d'autres téléphones
J'ai donc demandé quelque chose de similaire hier et ne reçoit pas de réponse à ma question, mais je ne pense pas vraiment que j'ai demandé correctement et n'a donc pas recevoir les informations dont j'avais besoin.
Je suis à la recherche d'une API open source, code, ou même juste un moyen que quelqu'un d'autre a obtenu ce sur Android. Je suis en train de faire une application qui a besoin de trouver tous les autres appareils Android dans un rayon spécifié. Par exemple, lorsque vous ouvrez votre Android Application Google Maps, et vous recherchez pour dire "Restaurants [code Postal]", il utilise un rayon modifié à partir de votre code postal et trouve tous ces endroits. Le GPS de VOTRE emplacement, cartes et utilise cette information pour trouver des restaurants à l'intérieur d'une adresse proche de celle adoptée dans l'emplacement.
Au lieu de cela, je veux être en mesure d'utiliser le GPS pour trouver ma position (que l'on peut maintenant facilement), mais au lieu de trouver des choses sur une carte (ce qui est déjà intégré), je veux être en mesure de trouver d'autres GPS activé les téléphones Android. Je reçois qu'ils seront à la diffusion de leur signal GPS en même temps (car ils n'ont pas leurs données stockées avec une sorte de base de données centrale comme un restaurant). Cependant, je ne veux pas de TROUVER ces téléphones, je veux envoyer/recevoir des données à partir de ces téléphones (avec les autorisations appropriées, évidemment).
Maintenant, j'ai trouvé des choses comme la Bosse de l'API. Cependant, la BOSSE utilise les téléphones capteurs d'allumage de cette recherche. Donc en gros, si vous "bosse" de votre téléphone avec une autre, et l'application est en cours d'exécution, il sera ALORS aller de l'avant et d'utiliser le GPS pour trouver l'emplacement d'un autre téléphone que vous venez de tombé avec et d'échanger des données entre eux. C'est comme EXACTEMENT ce que je veux faire cependant dans leur API, ils ne fournissent pas la fonctionnalité simplement dire, "Hey, donnez-moi tous les téléphones à l'intérieur d'un mile de moi."
J'ai aussi trouvé de l'API qui peut faire exactement ce dont j'ai besoin, mais ils doivent être sur la même portée Bluetooth ou sur le même réseau Wi-Fi, ce qui ne convient pas à ce dont j'ai besoin.
Avez-vous les gars savent de quoi que ce soit qui puisse correspondre exactement à ce dont j'ai besoin qui existe déjà? Ou peut-être modifier la Bosse de l'API (si vous l'avez fait), pour ne pas avoir à utiliser le téléphone de capteurs et de trouver des informations sur le téléphone directement à travers des GPS pour téléphones autour de vous? Ou est-il quelque chose qui existe sur un réseau 3g/4g au lieu de seulement wi-fi/Bluetooth?
Merci les gars.
merci de lire ma réponse
OriginalL'auteur slandau | 2011-02-04
Vous devez vous connecter pour publier un commentaire.
Pour ce faire via le GPS, vous devez avoir tous les téléphones fréquemment affichent leurs emplacements à un serveur de réseau, qui pourrait les informer d'autres personnes à proximité.
Inutile de dire que ce serait opt-in seulement!
Et il peut avoir des conséquences négatives pour la vie de la batterie, à moins que vous faire de mise à jour que rarement, ce qui peut limiter son utilisation.
L'avantage d'avoir un explicite déclencher l'action de ces deux téléphones est qu'ils ont seulement besoin d'interroger le GPS et en informe le serveur pour trouver les uns les autres par endroit quand ils ont tous les deux été déclenchée.
Les récepteurs GPS sont passifs, ils ne transmettent rien. Donc, soit l'appareil que vous souhaitez trouver doit avoir déjà mis à jour un serveur grâce à son emplacement via le réseau mobile assez récemment encore à peu près où ce dernier a dit qu'il était, ou les deux appareils doivent être activés en même temps de mettre à jour le serveur et d'avoir ce match.
Ce n'est pas le serveur de coût vous devriez vous inquiéter, mais le coût élevé pour les utilisateurs en termes de batterie et de la vie privée, ce qui peut limiter leur intérêt dans votre application, sauf si vous avez de sérieux de la valeur à offrir à leur tour.
Si vous êtes inquiet au sujet de serveur de coût, il suggère que vous n'avez vraiment pas un bon plan d'affaires ou une connaissance suffisante de l'internet moderne, de l'économie à l'écrire. Si vous n'êtes pas inquiet à propos de l'utilisateur des objections à la batterie ou de la vie privée, elle aussi suggère que vous êtes soit si grand et solidement établie par les affaires qui vous donne la possibilité d'ignorer les plaintes de ne pas besoin de s'inquiéter de la diminution du coût d'un serveur, ou vous même ne savez pas ce que vous vous embarquez.
"La sécurité serait inexistante ici" - et c'est ça le problème. Vous demandez à des personnes de confiance à la fois vos motivations et vos compétences techniques, tout en affichant une mauvaise compréhension de la technologie. Et vous le faites sur un sujet où même les meilleures sociétés ont une assez mauvaise réputation pour ce qui est à la hauteur de leurs promesses.
OriginalL'auteur Chris Stratton
Les seules choses qui sont "la diffusion d'un signal GPS" sont les satellites.
Vous n'avez pas d'autre choix que d'utiliser un serveur externe, si vous l'aimez ou pas, à la fois pour la découverte et pour une communication ultérieure.
Foursquare, Google Latitude, Yahoo Feu Aigle, et ainsi de suite.
OriginalL'auteur CommonsWare
Vous aurait probablement pour la création de votre propre application, alors vous pourriez le faire côté serveur et de pousser les choses. Si vous essayez de pousser des données aléatoires les téléphones Android - vous êtes hors de la chance. La plupart des gens ne sont pas que cela, et ne sont probablement pas pour les applications nécessaires pour recevoir et comprendre. Avec des réseaux Bluetooth vous auriez besoin de l'autorisation, et la plupart des Androïdes n'ont pas une capacité de transfert de données aléatoires par Bluetooth hors de la boîte (si vous ne pouvez certainement obtenir un logiciel pour le faire).
Honnêtement, les logiciels malveillants et le suivi sont les raisons, ce n'est vraiment pas possible, mais même si ils n'étaient pas, vous auriez encore besoin d'une application sur les dispositifs de réception qui comprennent ce que vous leur envoyez. Et si vous êtes largement assez répandus, vous auriez probablement souhaitez l'envoyer à un serveur pour diffuser de toute façon (pour la transmission des téléphones les coûts de bande passante d'au moins).
Ensuite, vous avez à mettre en œuvre la recherche sur le côté serveur. Périodiquement, vous avez le téléphone, envoyer il est l'emplacement du serveur et de savoir s'il existe des données en attente pour elle (une fois par minute, toutes les 5 minutes, un intervalle défini par l'utilisateur).
Serais-je capable d'utiliser Google Latitude que le serveur?
Tout à fait possible. Vous pouvez utiliser Google App Engine et l'espace de Stockage Google pour pousser vos données de mobile à mobile. Vous auriez encore besoin d'une application côté serveur à dire le "télécommandes" qu'il y a des données à récupérer.
Fondamentalement, quelque chose qui fonctionne de temps en temps et dit, vous êtes dans la gamme de quelques nouvelles données,...droit?
OriginalL'auteur Chris K
Développer une application serveur que votre application android journaux. Envoyer la position GPS à chaque fois que le téléphone se déplace sur une distance actuelle. Envoyer une requête au serveur pour lui demander si tout les autres téléphones sont dans la gamme, ou le serveur d'informer le téléphone d'un nouvel appareil de la gamme.
Vous pouvez exécuter l'évolutivité du serveur de problèmes, donc c'est quelque chose à penser.
Aussi, ce serait une grosse perte d'autonomie, et de sorte que vos utilisateurs ne peuvent pas être trop vif pour l'exécuter, pour ne pas mentionner la vie privée de l'élément.
Vous ne pouvez pas accomplir cela sans un serveur externe, sauf si vous utilisez un réseau peer-to-peer canal de communication tel que le bluetooth, ce qui nécessite confirmation manuelle pour l'appairage avec un périphérique cible. Même le wifi sera généralement besoin d'un serveur sous la forme d'un point d'accès (ad-hoc être possible dans certains cas mais peu probable)
Semble être la réponse passe. Merci les gars.
OriginalL'auteur FlappySocks
Vous avez besoin de repenser ce que vous essayez de faire. Les appareils Android ne sont pas "transmettre" aucun signal GPS, ils sont simplement des récepteurs, avec des signaux de satellites. De sorte que le téléphone peut facilement obtenir un emplacement pour lui-même, mais l'emplacement des autres appareils est très, très privé de l'information. Pour accéder à l'emplacement pour les autres téléphones, vous devez être sur le même réseau que (bluetooth, wifi), ou vous en avez besoin pour utiliser un serveur de base de service pour envoyer des endroits, comme Google Latitude.
Je serais très peu probable que de signer pour un tel service. Ma position est très privé, je la partage avec certaines personnes, mais je n'arrive pas moi-même de la partager avec une application, sans une très, très bonne raison.
Il me semble que vous avez besoin de construire un serveur de base de l'application, par exemple sur Google App Engine, ont les gens de vous inscrire, et accepter leur lieu d'être envoyées vers un serveur, de sorte que les autres téléphones de l'exécution de votre application peut accéder à ces informations du magasin central.
À moins que les deux appareils bluetooth/wifi réseaux (et encore, avec des limites) vous ne pouvez pas simplement "envoyer" des données entre les appareils, car ils sont à proximité les uns des autres. Si vous voulez périphériques de partager leurs emplacements, vous êtes très susceptibles d'avoir besoin de construire un serveur de base de l'application de recueillir des lieux, et de les redistribuer (comme Google Latitude). Votre serveur d'application pourrait donc fournir des données de localisation à d'autres utilisateurs, lorsque la distance entre ces utilisateurs est en dessous d'un certain seuil. Mais vous allez avoir à le faire via un serveur dans le cloud, il n'y a aucun moyen de le faire directement entre les périphériques.
Autant que je n'aime pas cette réponse, haha, je pense que c'est la bonne. Merci Ollie.
OriginalL'auteur Ollie C
Maintenant, la question a une solution très simple. Tout ce que vous avez à faire est d'installer un Clôture et de le surveiller pour l'entrée et la sortie des usagers. Zone de gardiennage virtuel vous permet de choisir une géolocalisation et de définir un cercle de rayon autour d'elle. Lorsque quelqu'un entre ou sort de l'emplacement, vous pouvez être averti et d'effectuer l'action souhaitée.
Visiter cette lien pour plus de détails sur la façon d'utiliser le présent dans Android.
OriginalL'auteur chinmish
Tous les commentaires de d'autres gens à propos de ne pas être en mesure de capter le signal à partir d'autres téléphones sont corrects. Il est complètement différent de ce système alternatif toutefois, dans le réseau des services de localisation. C'est un modèle où vous demandez à un réseau de l'opérateur pour l'emplacement d'un combiné, dont le transporteur réseau a besoin d'une piste pour le service 911 amélioré aux etats-unis (je suis pas au courant de la façon largement déployés c'est dans d'autres domaines, et comment de nombreux services différents, vous devrez utiliser pour couvrir d'autres domaines).
C'est potentiellement très coûteux la route. Et il ne sera pas automatiquement de travail pour tous les téléphones portables, je crois que les utilisateurs auront à être choisi dans le partage de l'emplacement de votre service. C'est la façon dont les services comme Loopt avait d'abord configurer les informations de localisation de sorte qu'il pourrait être recueillis de façon passive, sans nuire combiné de vie de la batterie. Il ya quelques services de tiers sur le devant pour un cross-service de transport telles que l'Emplacement des Laboratoires:
http://locationlabs.com/
Ainsi que de tiers les services de localisation comme Skyhook Wireless, qui pourrait être en mesure de vous obtenir des infos de la sorte (même si je ne pense pas que ce que vous êtes à la recherche pour les cartes à l'un de leurs Api)
Vous devriez être en mesure de creuser plus d'infos ici: developer.veriplace.com/devportal/locationAccessOverview je ne suis familier avec les services en général cependant, au-delà de ce qu'il y a sans doute mieux à il suffit de contacter l'entreprise et de trouver ce qu'ils offrent.
Ok merci je vais le faire.
OriginalL'auteur mikerowehl