当前位置: 首页 > wzjs >正文

php yaf 网站开发框架哪个app可以找培训班

php yaf 网站开发框架,哪个app可以找培训班,创建全国文明城市工作要求,网页链接生成在Android 9.0系统中,若需要通过修改系统源码实现开机启动特定应用(如系统预装应用或第三方应用),通常涉及对系统框架层(Framework)的深度定制开发。以下是详细的实现步骤和关键代码位置整理: 1…

在Android 9.0系统中,若需要通过修改系统源码实现开机启动特定应用(如系统预装应用或第三方应用),通常涉及对系统框架层(Framework)的深度定制开发。以下是详细的实现步骤和关键代码位置整理:


1. 监听开机完成广播并启动目标应用

Android系统在开机完成后会发送BOOT_COMPLETED广播,可以通过监听该广播触发应用启动逻辑。

关键修改位置
  • 文件路径:framework/base/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
实现步骤
  1. KeyguardUpdateMonitor类中注册广播接收器,监听ACTION_BOOT_COMPLETED广播。
  2. 收到广播后调用启动目标应用的方法。
示例代码
@VisibleForTesting
protected final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {// 调用启动应用的方法startTargetApp(context, "com.example.targetapp");}}
};private void startTargetApp(Context context, String packageName) {Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);if (intent != null) {intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);}
}

2. 修改默认启动项(Launcher)

如果需要将某个应用设为默认启动项(例如替换系统的Launcher),可以修改ActivityManagerService以强制指定默认Launcher。

关键修改位置
  • 文件路径:frameworks/base/services/java/com/android/server/am/ActivityManagerService.java
实现步骤
  1. ActivityManagerService中添加setDefaultLauncher()方法。
  2. 指定目标应用的包名和类名,并设置为默认Launcher。
示例代码
private void setDefaultLauncher() {String packageName = "com.example.customlauncher";String className = "com.example.customlauncher.MainActivity";ComponentName launcher = new ComponentName(packageName, className);// 清除原有默认设置mContext.getPackageManager().clearPackagePreferredActivities();// 设置新的默认LaunchermContext.getPackageManager().addPreferredActivity(filter, MatchFilter, components, launcher);
}

3. 系统权限与白名单配置

为了确保目标应用能够顺利启动,需正确声明权限并绕过系统限制。

权限声明

AndroidManifest.xml中添加以下内容:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name=".BootReceiver"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /></intent-filter>
</receiver>
绕过权限限制

在系统源码中,可能需要修改AppOpsManager以允许特定应用的开机自启动权限:

AppOpsManager mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
mAppOpsManager.setMode(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, uid, packageName, AppOpsManager.MODE_ALLOWED);

4. 适配Android 9.0的限制

后台限制
  • Android 9.0对后台启动Activity有严格限制,确保目标应用具有前台服务或系统签名权限。
隐式广播限制
  • BOOT_COMPLETED广播仍为显式广播,但需确保接收器在Manifest中正确注册。

总结步骤

  1. 监听开机广播

    • KeyguardUpdateMonitor或自定义系统服务中添加广播接收逻辑。
  2. 启动目标应用

    • 使用PackageManagerIntent启动指定包名的应用。
  3. 设置默认Launcher(可选)

    • 修改ActivityManagerService以强制指定默认启动项。
  4. 配置系统权限

    • Manifest和系统源码中声明权限并绕过限制。
http://www.dtcms.com/wzjs/221536.html

相关文章:

  • 遂宁市做网站的公司郑州seo哪家好
  • 西安建设公司网站南京seo公司教程
  • 腾讯云 个人网站网址域名大全2345网址
  • 网站设计在线crm系统网站seo综合诊断
  • 泉州专业网站建设网络推广平台哪家公司最好
  • 做网站需要身份证吗百度官网首页官网
  • 网站小logo设计乐云seo官网
  • 个人网站模版百度广告点击软件源码
  • 信宜网站设计公司优化大师是干什么的
  • 国外那些视频网站做的不错淘宝产品关键词排名查询
  • 一体化企业管理软件优化设计三年级下册数学答案
  • 泉州做网站便宜武汉网络seo公司
  • 网络管理系统有哪些武汉seo全网营销
  • 锦州做网站的公司苏州seo培训
  • 南通网站建设找哪家seo关键词分析
  • 南京成旭通网站建设公司怎么样百度一下你就知道搜索
  • 网站开发wbs案例网络营销专业大学排名
  • 无极网站建设如何设计网站的首页
  • 什么网站可以在线做雅思app制作费用一览表
  • 什么是无主体新增网站推广工具
  • 网站建设高端设计猪肉价格最新消息
  • 网站打开显示站点目录百度免费网站制作
  • 远洋国际建设有限公司网站全国十大婚恋网站排名
  • 做网站javaee热门搜索
  • dw做网站怎么设置页面音乐员工培训课程
  • 求网站建设合伙人泉州全网营销推广
  • 景翔物流网站建设公司太原seo代理商
  • 高水平 专业 建设 网站百度招商客服电话
  • 汽车商城网站建设线上推广费用
  • 武汉百度快速排名提升长沙关键词优化首选