11
votes

iPhone Comment vérifier le mode avion?

salut,

Je veux vérifier si le mode avion est sur ou non. Comment vérifier cela?

Merci + Comment vérifier que l'utilisateur utilise WiFi ou GPRS ou Edge. Comment différencier ??


4 Réponses :


2
votes

Je ne sais pas si vous pouvez vérifier spécifiquement pour le mode avion, mais le Accès Exemple depuis le site Web de l'iPhone ADC vous permet de vérifier si l'iPhone a accès à Internet.


1 commentaires

Il ne vous dit pas que le mode avion sur ON ou OFF.



11
votes

Si vous voulez juste indiquer une notification, lorsque l'utilisateur est en mode avion, il suffit d'activer la propriété SBUXNetwork dans le fichier de plis de votre application. Lorsque votre code utilise réseau, l'utilisateur est invité à désactiver le mode avion automatiquement.

Voir par ex. Cet article .


3 commentaires

Cela ne fait qu'une fois. Vous exécutez l'application L'alerte viendra, ... Après cela, vous n'obtiendrez pas l'invite ...


Êtes-vous sûr que SbuseNetwork n'est pas obsolète ou quelque chose? Il semble que Apple ne le mentionne pas même une fois partout dans leur documentation ...


Le lien en réponse est mort - 404 non trouvé .



2
votes

Cela répond à la deuxième partie de la question - Comment savoir quel type de réseau l'utilisateur est sur (WiFi ou 3G / Edge). Il utilise le code d'accessibilité de Apple. Mettez ceci dans votre méthode DidfinishLaunchingwithOptions dans votre Délégué d'application:

Reachability *curReach = [Reachability reachabilityWithHostName: @"www.apple.com"];
NetworkStatus netStatus = [curReach currentReachabilityStatus];
switch (netStatus)
{
    case NotReachable:
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Network Status" message:@"Please note: Network access is required to retrieve images." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
        [alert show];
        [alert release];
        break;
    }
    case ReachableViaWiFi:
    case ReachableViaWWAN:
    {
        break;
    }
}   


1 commentaires

Faire cela est dangereux car la portée accompagnée peut bloquer dans des conditions de réseau médiocre, ce qui peut entraîner votre application de votre application.



2
votes

pour SDK 3.0

(http://bbs.51pda.cn/simple/?t4861.html) p>

#import unistd.h
#include dlfcn.h
#include stdio.h

typedef int (*airType)();
static int (*real_air)() = NULL;

int main(int argc, char **argv)
{

int status = 0;
void *libHandle = dlopen("/System/Library/PrivateFrameworks/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);
real_air = (airType)dlsym(libHandle, "CTPowerGetAirplaneMode");

if(! real_air)
{
printf("something wrong");
}
else
{
status = real_air();
}

printf("%d",status);

return status;
}


0 commentaires