12 berichten aan het bekijken - 1 tot 12 (van in totaal 12)
  • Q:
    Bijdrager
    MacSullivan

    [iPhone] – hoe scherm dimmen zonder te slapen

    Voor mijn applicatie wil ik dat de iPhone niet gaat slapen, maar dat wel het scherm gaat dimmen (om batterij te besparen). Het niet laten slapen doe ik met de volgende code:

    [code:1:232d89de30]- (void)applicationDidFinishLaunching:(UIApplication *)application
    {
    // avoid sleeping when this application is running
    application.idleTimerDisabled = YES;
    }[/code:1:232d89de30]

    Weet iemand de oplossing om het scherm te dimmen of zelfs helemaal uit te laten gaan waarbij het scherm wel reageert op touch (net als bij een handsfree gesprek)?

    Bijdrager
    manuelvanrijn
    Bijdrager
    danielpunt

    Ik weet niet of dat gaat werken in de officiële SDK, want dit is van een Toolchain forum.:)

    Bijdrager
    manuelvanrijn
    ”danielpunt”

    Ik weet niet of dat gaat werken in de officiële SDK, want dit is van een Toolchain forum.:)

    Ahh weer wat geleerd… sorry wist niet dat dit niet bij de SDK hoorde, eerlijk gezegd was dit simpel weg mijn resultaat na een google search. Nog mooier verteld, mijn eerst (jawel) mac komt hopelijk deze week.

    Kan dus eigenlijk officieel dan pas gaan spelen met het spul;)

    Bijdrager
    MacSullivan

    Inderdaad dit kan niet met de officiële SDK (ben ik inmiddels achter). Maar omdat de applicatie voor eigen gebruik is maakt me dat nog niet eens uit. Ik wil alleen niet mijn iPhone jailbraiken, maar ik weet (nog) niet of dit nodig is met Toolchain?

    Bijdrager
    PascalW

    Ook met de SDK werkt dit gewoon hoor, als je het in een applicatie voor eigen gebruik gebruikt is het verder ook geen probleem. De AppStore zal je er niet mee inkomen denk ik.

    Wel moet je ervoor zorgen dat je het GraphicServices framework toevoegd aan je project, deze staat in

    [code:1:209c67e883]
    /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/System/Library/PrivateFrameworks/
    [/code:1:209c67e883]

    Vervolgens kun je de methode GSEventSetBacklightLevel gewoon gebruiken.

    Let wel, omdat het een private framework betreft bevat het framework geen header file dus je zult warnings krijgen dat die methode mogelijk niet bestaat. Om dit weg te werken zou je met class-dump een header file kunnen dumpen, of zelf de header file van GraphicServices downloaden van internet (even googlen).

    Let ook even op dat als je zelf de backlight levels aanpast, je ze ook zelf weer terug moet zetten. Anders blijft je scherm os wide gedimt.

    Bijdrager
    MacSullivan

    Dit had ik geprobeerd, maar ik kreeg het niet gecompileerd. Ik ga het vanavond nog weer even proberen nu ik weet dat het wel kan. Ik laat het even weten wanneer ik het aan de praat heb.

    Bijdrager
    MacSullivan

    Mijn fout was dat ik de headerfile wil importeren en die bestaat niet.

    [code:1:966312c716]#import <GraphicsServices/GraphicsServices.h> [/code:1:966312c716]

    Als ik dit niet doe, dan blijkt het inderdaad gewoon te werken. Alleen krijg ik nu een warning als ik de GS functie aanroep: “warning: implicit declaration of function ‘GSEventSetBacklightLevel'”. Enig idee hoe ik die warning weg krijg?

    Allemaal bedankt voor het meedenken, super dat het werkt.

    Bijdrager
    danielpunt

    Je moet het Framework includen in je Groups & Files palet, niet via een #import

    -edit-
    Ik ben te langzaam.:) Daar was je al achter.

    Bijdrager
    PascalW

    Dan moet je of de headerfile generen met classdump, of deze downloaden, en importen. Of je declareerd de methode zelf in de file waarin je hem gebruikt.

    Bijdrager
    MacSullivan

    Ik heb de functie declaratie in mijn eigen header file gedaan en dat werkt inderdaad goed.


    @Pascal
    : Blijkbaar heb ik iets te vroeg gejuicht, want het werkt eigenlijk niet goed. Welke float value ik ook geef aan de functie GSEventSetBacklightLevel (tussen 0.0f en 1.0f), het licht gaat helemaal uit en krijgt het pas weer aan als ik de iPhone uit en aan zet. Zou jij een klein testje kunnen doen om te kijken of het bij jou goed werkt?

    Bijdrager
    PascalW
    ”MacSullivan”

    Ik heb de functie declaratie in mijn eigen header file gedaan en dat werkt inderdaad goed.


    @Pascal
    : Blijkbaar heb ik iets te vroeg gejuicht, want het werkt eigenlijk niet goed. Welke float value ik ook geef aan de functie GSEventSetBacklightLevel (tussen 0.0f en 1.0f), het licht gaat helemaal uit en krijgt het pas weer aan als ik de iPhone uit en aan zet. Zou jij een klein testje kunnen doen om te kijken of het bij jou goed werkt?

    Ik heb het net even getest en bij mij werkt het prima. Ik zal je mijn test xcodeprojectje even sturen, dan kun je het even proberen.

12 berichten aan het bekijken - 1 tot 12 (van in totaal 12)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.