Android8.1 9.0 10.0 默认开启WLAN热点设置默认热点名称和密码

本文介绍了在Android 10.0系统开发中如何实现开机默认开启WLAN热点,并设置了默认的热点名称和密码。关键在于KeyguardUpdateMonitor.java中的mBroadcastReceiver监听开机广播,然后调用wifiApControl()来开启热点,并在WifiApConfigStore.java中设置默认配置。
摘要由CSDN通过智能技术生成

1.概述

在10.0的系统产品开发中, 由于产品需要定制款默认开启热点的机子,这就需要在开机后默认打开热点
而开机后第一个弹出来的就是锁屏界面 所以就想在锁屏界面手动开机广播后添加开启热点的功能

2.默认开启WLAN热点设置默认热点名称和密码的核心类

/framework/base/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java

3.默认开启WLAN热点设置默认热点名称和密码的核心功能实现和分析

在开机完成后,进入的第一个页面就是开机锁屏页面就是
KeyguardUpdateMonitor.java 中,
路径:
/framework/base/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java

3.1KeyguardUpdateMonitor.java关于开机相关源码分析


                
参考资源链接:[Android多版本切换默认launcher教程](https://wenku.csdn.net/doc/2ciwithbk6?utm_source=wenku_answer2doc_content) 在Android平台上,如果你需要在不同版本的系统上实现切换默认launcher的功能,这通常涉及到对`PackageManager`和`Intent`的深入理解和操作。下面将介绍如何通过编程方式实现这一功能,并考虑到不同Android版本间的差异性。 首先,要获取当前设备上所有可作为默认 launcher 的活动列表,你需要创建一个 `Intent` 对象,并设置其动作为 `Intent.ACTION_MAIN` 和类别为 `Intent.CATEGORY_HOME`,这代表主屏幕的行为。接着使用 `PackageManager` 的 `queryIntentActivities()` 方法来查询所有能响应此意图的活动。 ```java PackageManager packageManager = getPackageManager(); Intent intent = new Intent(Intent.ACTION_MAIN, null); intent.addCategory(Intent.CATEGORY_HOME); List<ResolveInfo> resolveInfoList = packageManager.queryIntentActivities(intent, 0); ``` 其次,确定当前设置默认 launcher。通过 `PackageManager` 的 `resolveActivity()` 方法,可以找到处理主屏幕 intent 的当前活动。 ```java ResolveInfo currentDefaultLauncher = packageManager.resolveActivity(intent, 0); ``` 然后,为了切换到另一个 launcher,你将需要指定目标 launcher 的包名。遍历 `resolveInfoList` 列表,找到目标包名对应的 `ResolveInfo`,并使用 `PackageManager` 的 `setComponentEnabledSetting()` 方法来更改默认启动器。根据 Android 版本的不同,可能需要使用不同的方法,例如 `setDefaultActivity()` 在某些版本中已经被弃用。 ```java private void setAsDefaultLauncher(String packageName) { for (ResolveInfo resolveInfo : resolveInfoList) { if (TextUtils.equals(packageName, resolveInfo.activityInfo.packageName)) { ComponentName componentName = new ComponentName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); // 在 Android Q (API 29) 及以上版本中,你可能需要 MANAGE_DEFAULT_APPS_SETTINGS 权限 int newState = ***PONENT_ENABLED_STATE_ENABLED; packageManager.setComponentEnabledSetting(componentName, newState, PackageManager.DONT_KILL_APP); return; } } } ``` 在实际开发中,需要注意不同版本的 Android 系统可能有不同的安全限制,例如在 Android Q 及以后版本,非系统应用可能无法更改默认 launcher。此外,根据应用的版本,需要适配不同的 API 和方法。因此,建议查阅官方文档并进行充分的测试以确保应用的兼容性和功能性。 为了更深入地理解这一过程,建议查看《Android多版本切换默认launcher教程》。此资源提供了在不同 Android 版本中实现切换默认 launcher 的详细步骤,以及对相关 API 的深入解释和实践指导。通过学习这些内容,你可以更好地掌握在多个 Android 版本中切换默认 launcher 的技术细节,为用户提供一致且流畅的体验。 参考资源链接:[Android多版本切换默认launcher教程](https://wenku.csdn.net/doc/2ciwithbk6?utm_source=wenku_answer2doc_content)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安卓兼职framework应用工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值