Android WIFI\u睡眠\u策略\u如何在API-17中设置?
我使用了下面的代码,我的目标是API-15Android WIFI\u睡眠\u策略\u如何在API-17中设置?,android,Android,我使用了下面的代码,我的目标是API-15 android.provider.Settings.System.putInt(cr, android.provider.Settings.System.WIFI_SLEEP_POLICY, android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER); 当代码在API-17平台上运行时,我在log
android.provider.Settings.System.putInt(cr,
android.provider.Settings.System.WIFI_SLEEP_POLICY,
android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER);
当代码在API-17平台上运行时,我在logcat中得到警告
设置wifi_睡眠_策略已从android.provider.Settings.System移动到android.provider.Settings.Global,值不变
因此,我在那之后做的是将我的项目目标设置为APi-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);
}
然后我检查了WRITE_SECURE_SETTINGS权限仅适用于系统应用程序,我无法使用它编译代码,就好像此权限仅适用于系统应用程序一样
所以我很困惑我之前得到的警告是错误的还是我的代码有什么问题,我想让它与API-17兼容 不幸的是,从API-17开始无法再更改此设置,因为它已被禁用 正如您所说的,
WRITE\u SECURE\u SETTINGS
权限仅授予系统应用程序,因此最好的选择是要求用户从wifi设置手动设置此选项:
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));