2010-02-18 7 views
0

Je dois énumérer et fermer des connexions GPRS individuelles sur un périphérique Windows Mobile.Énumérer les connexions GPRS actives sur Windows Mobile

J'ai essayé l'API RAS comme suggéré par this answer, mais cela ne fonctionne pas sur tous les périphériques. RasEnumConnections sur un appareil HTC liste des sessions GPRS, mais sur un Samsung ce n'est pas le cas.

Le Samsung a une application graphique avec cette fonctionnalité - il fait beaucoup d'utilisation de ossvcs.dll mais les fonctions qu'il utilise sont exportées uniquement par ordinal, donc je n'ai aucune idée de ce qu'ils sont!

J'ai également examiné Connection Manager API mais il ne vous permet pas d'énumérer les connexions existantes.

D'autres idées? Y a-t-il une API que j'ai manquée?

Répondre

0

L'énumération et la fermeture des connexions sont intentionnellement difficiles. L'idée générale est qu'une application ne doit pas être obligée de mettre fin à des connexions qui ne lui appartiennent pas parce qu'elle est très intime. Il suppose que les applications utilisant la connexion sont prêtes à se passer de cette connexion, ce qui n'est pas une hypothèse valide.

Même si vous pouvez énumérer les connexions via le gestionnaire de connexions, vous ne pouvez toujours pas les fermer. Vous ne pouvez marquer qu'une connexion comme n'étant plus utilisée par votre application, donc si le Gestionnaire de connexions voit que personne ne l'utilise et le délai d'expiration de la connexion expire, il peut alors se fermer. RAS était une solution de contournement/piratage pour obtenir ces connexions, mais il a été obsolète pour que les OEM ne doivent pas utiliser RAS pour gérer les connexions, et il semble que Samsung ne l'utilise pas. Au lieu de cela, ils ont choisi d'avoir leur propre implémentation propriétaire. La seule façon de mettre en œuvre cette implémentation serait par le biais de leur propre API propriétaire, et il ne semble pas qu'ils la publient, vous devrez donc la désosser. Même alors, il va être spécifique à leur appareil, et fragile car il peut changer entre les versions.

Mon conseil est de repenser le besoin d'arrêter toutes les connexions sur l'appareil.

Questions connexes