2012-12-27 20 views
8

, benim hedef API 15'tirWIFI_SLEEP_POLICY_NEVER API-17'de nasıl ayarlanır? Ben kodu aşağıdaki kullanıyordum

android.provider.Settings.System.putInt(cr, 
         android.provider.Settings.System.WIFI_SLEEP_POLICY, 
         android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER); 

kod LogCat içinde warnigns,

Ayar wifi_sleep_policy android.provider taşındı alıyorum platformu API-17 üzerinde çalışır. Settings.ystem android.provider.Settings.Global, değeri değişmez. o Api-17 benim proje hedef belirlemek ve sonucunda bu kodu

 if(Build.VERSION.SDK_INT < 17) 
     { 
      android.provider.Settings.System.putInt(cr, 
         android.provider.Settings.System.WIFI_SLEEP_POLICY, 
         android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER); 
     } 
     else    
     {    
      android.provider.Settings.Global.putInt(cr, 
        android.provider.Settings.Global.WIFI_SLEEP_POLICY, 
        android.provider.Settings.Global.WIFI_SLEEP_POLICY_NEVER); 

     } 

kullanıldıktan sonra yaptığım Peki

Ben platformu Api-17

  java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS 

aşağıdaki SecurityException başlarken Ardından, WRITE_SECURE_SETTINGS izninin yalnızca sistem uygulamaları için olduğunu kontrol ettim ve bu izin yalnızca sistem uygulamaları için yapılmış gibi kodumu bu dosya ile derleyemedim.

Daha önce aldığım uyarının yanlış olduğunu veya kodumda yanlış bir şey olduğunu anladığımdan, API-17 ile uyumlu hale getirmek istiyorum.

cevap

1

Maalesef bu ayarı artık API-17'den has been deprecated'dan beri değiştirmek mümkün değildir. Dediğiniz gibi

, WRITE_SECURE_SETTINGS izin yalnızca sistem uygulamaları verilen ve bu yüzden iyi bir alternatif elle wifi ayarlarından bu seçeneği ayarlamak için kullanıcı istemektir edilir:

startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
İlgili konular