2010-10-03 3 views
14

Je vis près de la frontière et de travailler dans un autre pays. J'ai donc choisi mon propre fournisseur de réseau comme favori. Cependant, je remarque que ça colle avec le fournisseur aussi longtemps que possible. Donc, quand je pars de mon pays, je garde mon réseau même quand je suis de l'autre côté de la frontière, cependant, quand je vais dans l'autre sens, ça va garder le réseau étranger même quand mon réseau préféré est déjà disponible. Je sais cela, parce que quand je veux le sélectionner manuellement, il est disponible dans la liste.Vraiment préféré réseau: sélectionnez mon propre fournisseur de réseau dès qu'il est disponible (à partir du code)

Maintenant, je voudrais créer une application qui rechercherait automatiquement mon réseau préféré quand il est en itinérance, chaque fois qu'il se connecte à une autre tour de téléphonie cellulaire. Maintenant, je comprends, que précédemment j'aurais pu écouter Cell Location a changé avec un récepteur de diffusion, mais c'est maintenant impossible. (Ce qui est dommage) Et je lis de ceci: Programatically connecting to another Network operators Il semble que je serais incapable de sélectionner un autre fournisseur d'une application pour des raisons de sécurité. (Au moins avec des appels api documentés).

Cependant, je ne me soucie pas de l'API publique ou non, car je n'ai pas l'intention de distribuer cela dans l'Android Market. C'est juste une application pour rendre ma vie plus facile, va probablement ouvrir le code source, donc d'autres personnes peuvent l'utiliser si elles le veulent.

Je pourrais utiliser quelques astuces, pour que cela fonctionne. Alors peut-être qu'il y a d'autres choses qui sont diffusées pour lesquelles je peux écouter, comme la force du signal ou quelque chose, cela démarre mon code pour vérifier si je peux changer de réseau. Je préférerais que cela fonctionne comme un récepteur de diffusion, j'ai également lu que lorsque vous utilisez l'emplacement de la cellule d'un service que je ne recevrai pas de mises à jour lorsque l'écran est éteint, ce qui dans ce cas va à l'encontre. Et puis, j'apprécierais grandement quelques conseils/astuces pour savoir comment rechercher la source Android pour des choses que je peux utiliser pour sélectionner le réseau automatiquement.

+1

mPhone.SélectionnezNetworkManually (mNetworkMap.get (selectedCarrier), msg); Dans android_source/packages/apps/Téléphone/src/com/android/phone/NetworkSetting.java Semble spécifier le réseau et le changer en celui-là. – wligtenberg

+0

Avez-vous un téléphone rooté? – Christian

+0

J'ai un ADP1, que je peux utiliser pour un peu d'expérimentation, et je suis prêt à enraciner mon désir pour cela. – wligtenberg

Répondre

1

Puisqu'il semble que vous voyagiez sur un chemin prévisible entre les réseaux, avez-vous envisagé d'utiliser la fonctionnalité ProximityAlert de LocationManager? Vous définissez un cercle autour d'un emplacement et lorsque votre appareil entre/sort de ce cercle, une diffusion est émise vers votre récepteur.

j'ai écrit une section sur ce sous Android Pro 3, chapitre 17. Il est un exemple d'application sur notre site web:

http://www.androidbook.com/projects

Cliquez sur le lien pour les fichiers zip de projet, puis recherchez ProAndroid3_Ch17_Maps .zip

Il existe des instructions de téléchargement et d'importation à partir du lien ci-dessus. Le projet à l'intérieur du zip s'appelle ProximityAlertDemo. C'est très basique, juste pour montrer l'alerte de proximité elle-même, mais il ne devrait pas être trop difficile de l'intégrer dans une application ou un service. Je crains de ne pas avoir de réponse pour vous sur la manière de changer les réseaux du code. La suggestion de lancer dans l'écran Paramètres semble être votre meilleur pari pour le moment.

+0

Vrai, mais ce n'est pas le problème principal.Reste le problème de la modification du réseau, ce qui n'est apparemment pas possible. Si vous savez comment faire cela, s'il vous plaît aider! – wligtenberg

+0

Peut-être essayer de demander à ce gars: https://market.android.com/developer?pub=Kostya+Vasilyev depuis son WiFi Manager semble avoir la possibilité de changer de réseau par programmation. –

+0

Ouais, mais WIFI est différent, je veux dire les réseaux cellulaires. – wligtenberg

Questions connexes