私は次のコードを使用していました、私のターゲットは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 で実行されると、logcat に警告が表示されます。
wifi_sleep_policy の設定が 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);
}
その結果、プラットフォーム Api-17 で次の SecurityException を取得し始めました
java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS
次に、WRITE_SECURE_SETTINGS パーミッションがシステム アプリ専用であることを確認しましたが、このパーミッションがシステム アプリ専用であるかのように、それを使用してコードをコンパイルできませんでした。
そのため、以前に受け取った警告が間違っていたのか、コードに何か問題があるのか 混乱しています。API-17と互換性を持たせたいです。