Domanda

HI,

Voglio verificare se la modalità aereo è attiva o no .. come controllarla?

grazie + come verificare che l'utente stia utilizzando WIFI o GPRS O EDGE. come differenziare ??

È stato utile?

Soluzione

Se vuoi solo mostrare la notifica, quando l'utente è in modalità aereo, è sufficiente abilitare la proprietà SBUsesNetwork nel file di plist della tua app. Quando il codice utilizza la rete, all'utente viene richiesto di disattivare automaticamente la modalità aereo.

Vedi ad es. questo post .

Altri suggerimenti

Non sono sicuro di poter verificare in modo specifico la modalità aereo ma il raggiungibilità esempio dal sito web di iphone adc consente di verificare se l'iphone ha accesso a Internet.

Questo risponde alla seconda parte della domanda: come dire su quale tipo di rete si trova l'utente (Wifi o 3G / Edge). Utilizza il codice di raggiungibilità di Apple. Inseriscilo nel metodo didFinishLaunchingWithOptions nel delegato dell'app:

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;
    }
}   

Per SDK 3.0

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

#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;
}
  

debian: ~ # arm-apple-darwin9-gcc -lobjc -bind_at_load   -F " / System / Library / PrivateFrameworks " -framework CoreTelephony test.c -o test

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top