配置 settings 源码 开机自动打开wifi
时间: 2023-09-04 13:12:17 浏览: 45
要在 Android 系统启动时自动打开 wifi,还可以通过修改 settings 源码来实现。具体步骤如下:
1. 下载 Android 源码并编译。
2. 打开 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java 文件。
3. 在 SettingsProvider.java 文件中找到以下代码:
```
private void checkWriteSettingsPermission(Context context, String name) {
if (context.checkCallingOrSelfPermission(android.Manifest.permission.WRITE_SETTINGS)
!= PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("Permission denial: writing to secure settings requires "
+ android.Manifest.permission.WRITE_SETTINGS);
}
}
```
4. 在上面的代码块之后添加以下代码:
```
private static final String WIFI_ON_BOOT = "wifi_on_boot";
private static final int WIFI_ON_BOOT_DEFAULT = 0;
static {
sSecureSettingValidators.put(WIFI_ON_BOOT, BOOLEAN_VALIDATOR);
}
private void restoreWifiOnBootSetting(ContentValues values) {
final ContentResolver cr = getContext().getContentResolver();
final boolean wifiOnBoot = Settings.Secure.getInt(cr, WIFI_ON_BOOT, WIFI_ON_BOOT_DEFAULT) != 0;
if (wifiOnBoot) {
WifiManager wifiManager = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(true);
}
}
```
这段代码定义了一个名为 WIFI_ON_BOOT 的设置项,用于控制系统启动时是否自动打开 wifi。在 restoreWifiOnBootSetting() 方法中,如果 WIFI_ON_BOOT 被设置为 true,则会自动打开 wifi。
5. 保存 SettingsProvider.java 文件并退出编辑器。
6. 重新编译 Android 系统镜像文件并将其烧录到设备上,系统启动时就会自动打开 wifi。
需要注意的是,修改 settings 源码需要重新编译整个 Android 系统,因此可能需要较长时间和较大的存储空间。另外,修改系统源码不是官方推荐的做法,可能会导致系统不稳定或无法更新,因此请谨慎操作。