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

开机自动启动activity

运行平台:

手机:红米9A
安卓版本:11

开发平台:

开发工具:android studio 2022.3.1 Patch 1
sdk配置,build.gradle文件中

compileSdk 34
minSdk 29
targetSdk 33

基本原理:

监听开机完成广播:android.intent.action.BOOT_COMPLETED
在监听广播响应函数接口里,启动本程序activity

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/><applicationandroid:allowBackup="true"android:dataExtractionRules="@xml/data_extraction_rules"android:fullBackupContent="@xml/backup_rules"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.ProcessWatch"tools:targetApi="31"><activityandroid:name=".MainActivity"android:exported="true"android:label="@string/title_activity_main"android:theme="@style/Theme.ProcessWatch"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><receiverandroid:name="com.example.processwatch.LaunchReceiver"android:enabled="true"android:exported="true"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED"/></intent-filter></receiver></application></manifest>

广播处理:

package com.example.processwatch;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;public class LaunchReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Log.i("123456", "LaunchReceiver..........");Toast.makeText(context, "Launch complete", Toast.LENGTH_LONG).show();Intent launchIntent = new Intent(context, MainActivity.class);launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(launchIntent);}
}

权限说明:

在AndroidManifest.xml文件中
广播权限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

窗口相关权限(没有这个广播函数启动不了activity):

<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

最好在应用信息手动操作,打开应用程序如下权限:
自启动,后台弹出界面,显示浮窗
我也不确定是否真的有影响,之前是有广播但启动不了activity

启动任务栈:

在广播处理中,启动的代码

Intent launchIntent = new Intent(context, MainActivity.class);launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(launchIntent);

注意不要少了这一行

launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
http://www.dtcms.com/a/573934.html

相关文章:

  • 医学图像分割评价指标Dice与HD95的详解
  • 杀毒软件杀毒原理(草稿)
  • 网站开发需要会的东西网页设计大赛主题
  • 如何将iPhone上的笔记传输到电脑
  • 发布公司信息的网站网推接单
  • MES 离散制造核心流程详解(含关键动作、角色与异常处理)
  • 网站建设方案与报价wordpress文章怎么生成标签
  • 雄安投资建设集团网站东莞网站建设咨询
  • ruoyi前端(vue3)框架,切换菜单白屏问题
  • HTML5+CSS3小实例:不用JS实现幽灵网格动画
  • 人工智能 机器学习 深度学习
  • 用C++从零开始实现的小型深度学习训练框架
  • 算法题(Python)数组篇 | 3.有序数组的平方
  • 网站引流怎么做广告海报图片
  • 专业人士怎样建网站超星网站开发实战答案
  • 做推广的网站那个好网路营销网站策划书
  • muduo库学习(1):Reactor模型的设计思想
  • 分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
  • 【UE·优化篇】使用FramePro优化UI性能
  • 网站建设个人工作室seo在线培训机构
  • 免费做网站怎么做网站吗上海做网站比较好的
  • 【观察者模式】深入 Spring 事件驱动模型:从入门到微服务整合实战
  • 大连永锐网站哪家做的推荐常州网站建设
  • React的设计理念与核心特性
  • 单片机中NRST引脚复用为GPIO
  • React 13
  • 【功能安全】AEB功能HARA分析
  • 佛山做外贸网站特色中企动力做过的网站
  • 重庆网站建设冒号做网站优化给业务员提成
  • 影刀RPA完全指南:从零入门到自动化高手(2/10)