2009-05-07 7 views

Odpowiedz

0

Nie wierzę, że istnieje sposób, aby to osiągnąć.

Jedną z rzeczy, które moim zdaniem są możliwe, jest powstrzymanie iPhone'a przed blokowaniem. można wtedy zbudować widok, który skopiowałby funkcję odblokowania blokady i nadal miałbyś kontrolę nad telefonem.

26

To niemożliwe. Możesz jednak "uniemożliwić" blokowanie telefonu podczas działania aplikacji. [UIApplication sharedApplication].idleTimerDisabled = YES powinien to zrobić.

+0

„to niemożliwe” nie wydaje się być prawdą (jest nieco tad różnicy między „niemożliwe” i „nieudokumentowane” ...) –

0

Zasadniczo nie jest to możliwe, ponieważ jest to prawdopodobnie część prywatnych frameworków, które mogą być używane tylko przez Apple. Istnieją aplikacje, takie jak fałszywe aplikacje dzwoniące, które korzystają z "fałszywego" ekranu blokady, ale jak już zauważyłeś, naciśnięcie przycisku Home powoduje zamknięcie aplikacji, co powoduje, że ekran blokady jest bezużyteczny.

23

Można to zrobić poprzez Caling GSEventLockDevice(); z Twojej aplikacji. Ta funkcja znajduje się w GraphicsServices.framework.

+8

To jest prywatne API. – Mugunth

+17

@Mugunth Nie powiedziałem, że to publiczny interfejs API, powiedziałem, że ** jest możliwe. ** –

+1

@ H2CO3: Nie działa w 'iOS7'. Czy możesz powiedzieć mi o 'iOS7'? Już o to poprosiłem [Pytanie] (http://stackoverflow.com/q/19209887/1603072). – Bhavin

2

Jest to prawdopodobnie możliwe z nieudokumentowanymi funkcjami Apple (może GSEventLockDevice()?), Ale z pewnością prowadzi to do automatycznego REJECTION App Store.

Apple po prostu nie chce, aby ktokolwiek żartował z takimi podstawowymi funkcjami.

1

Jeśli chcesz to zrobić, Apple nie zaakceptuje tego, Twoja aplikacja musi być jailbreak. możesz to zrobić, wywołując Private framework na swoim projekcie. możesz użyć GraphicsServices.framework.

UWAGA:

Ten GraphicsServices.framework jest prywatnym ramy. Apple nigdy nie zaakceptuje twojej aplikacji. Wywołując metodę GSEventLockDevice(), możesz łatwo zablokować lub odblokować swoje urządzenie. Ten GSEventLockDevice() znajduje się w GSEvent.h.

Mam nadzieję, że ten ci pomoże.

Proszę dać mi znać, jeśli nadal napotyka żadnego problemu

+0

Zrobiłem to pomyślnie, ale jak mogę ustawić lub zmienić hasło do telefonu przed jego zablokowaniem. z góry dziękuję. –

+0

co masz na myśli, że to zrobiłeś? został zaakceptowany na appstore? – mtasic85

+0

No.Apple nie zostanie zaakceptowany. –

0

skrót Opis blokowania i odblokowywania. Chciałbym spróbować przełącznik, który włączono = TAK i włączone = NIE dla właściwości widoku. Więc zasadniczo możesz wyłączyć wszystkie UIGestureRecognizers i "zablokować" ekran, jeśli o to ci chodzi. Robię to z UIbuttons po dodaniu ich jako IBOutlet, a także IBAction, więc są obiektem i mogą być modyfikowane na poziomie właściwości. Pracuję nad tym właśnie teraz. Opublikuję moje wnioski.

4

To już zostało rozwiązane. Można go znaleźć na Github: https://github.com/neuroo/LockMeNow (praca poniżej iOS 7)

char*framework="/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices"; 
       void *handle= dlopen(framework, RTLD_NOW); 
       if (handle) 
       { 

        void (*GSEventLockDevice)() = dlsym(handle, "GSEventLockDevice"); 

        if (GSEventLockDevice) 
        { 

         GSEventLockDevice(); 
         NSLog(@"Phone is Locked"); 
         //......... 

        } 
        dlclose(handle); 

       } 
+0

Czy ta aplikacja zostanie zaakceptowana w AppStore? – mtasic85

Powiązane problemy