2012-02-15 10 views
5

Yaklaşım sensörü ile ekranı AÇIK ve KAPALI hale getiren bir uygulama yapıyorum. Yakınlık kodu bitti, ancak ekran denetimlerini kullanırken sorun yaşıyorum. Ben kullanması gerektiğini okudumAndroid Java: Ekranı kapat Kapalı

, Bunun için

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
manager.goToSleep(int amountOfTime); 

, bunun işe yaradığını yapmak için özel izinleri vermek gerekir, ama bunu nasıl çözemedim.

Ayrıca

, ben ekran parlaklığını

WindowManager.LayoutParams params = getWindow().getAttributes(); 
      params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; 
      params.screenBrightness = 0; 
      getWindow().setAttributes(params); 

değiştirme hakkında okudum Fakat bu şekilde sadece benim uygulamanın ekranını kapattığınızda; Uygulamam arka planda çalışıyorsa çalışmıyor.

Ben de, (i ekran-off benim telefon uyandırmak için bunları kullanmak) Uyandırma kilidi kullanma hakkında okumak, ama ne zaman

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag"); 
wl.acquire(); 
wl.release(); 

Ama bunu yaparken, hiçbir şey olmuyor var.

Bunu yapmanın başka yolu var mı?

+0

http://stackoverflow.com/questions/3643907/putting-the-system-to-sleep-on-android –

+0

Teşekkür'ın Bkz ama sorun ne orada – Bertrand

+0

çözüldüğünü görünüyor @ Otur: Bunu nasıl çözdün? ? – astuter

cevap

1

Bunu yapmak için Uygulaması'na doğru izinleri vermek gerekir:

<manifest> Etiketi içerdeki Manifest için <uses-permission android:name="android.permission.DEVICE_POWER" /> ekle

bu kullanımda üzerinde Ekranı saklamak istiyorsanız, Dianne Hackborn önerdiği gibi Google Plus'ta: KeepScreenOn

+0

Cevabınız için teşekkür ederiz. Bu izni açıklamaya koyuyorum, ancak 2. düzey bir izin olduğu için, onu kullanabilmek için belirli bir izne (Sistem) sahip olmamız gerekiyor. Bu "Özel izinler" dediğim şey, üzgünüm çok kötü bir şekilde açıkladım. – Bertrand