2012-12-27 11 views
8

मैं कोड निम्नलिखित उपयोग कर रहा था, मेरे लक्ष्य एपीआई-15 हैAPI-17 में सेट करने के लिए WIFI_SLEEP_POLICY_NEVER कैसे करें?

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

कोड प्लेटफ़ॉर्म API -17 पर चलता है जब मैं प्राप्त logcat में warnigns,

स्थापना wifi_sleep_policy android.provider से ले जाया गया है। सेटिंग्स। Android.provider.Settings.Global के लिए सिस्टम, मान अपरिवर्तित है।

के बाद कि एपीआई-17 के लिए अपने प्रोजेक्ट का लक्ष्य रखा गया था और इस कोड को

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

     } 

इस्तेमाल किया नतीजतन मैं तो क्या किया मैं मंच एपीआई-17

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

में निम्नलिखित SecurityException आने शुरू हो गए तब मैंने जांच की कि WRITE_SECURE_SETTINGS अनुमति केवल सिस्टम ऐप्स के लिए है और मैं इसके साथ अपना कोड संकलित करने में सक्षम नहीं था, जैसे कि यह अनुमति केवल सिस्टम ऐप्स के लिए है।

तो मैं उलझन में हूं कि मुझे पहले चेतावनी मिली थी या क्या मेरे कोड में कुछ भी गलत है, मैं इसे एपीआई -17 के साथ संगत बनाना चाहता हूं।

उत्तर

1

दुर्भाग्य से has been deprecated के बाद से इस सेटिंग को एपीआई -17 से आगे बदलना संभव नहीं है।

जैसा कि आपने कहा, WRITE_SECURE_SETTINGS अनुमति केवल सिस्टम एप्लिकेशन को दी जाती है और इसलिए सबसे अच्छा विकल्प मैन्युअल रूप से वाईफ़ाई सेटिंग्स से यह विकल्प सेट करने के लिए उपयोगकर्ता पूछने के लिए है:

startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
संबंधित मुद्दे