首页 > 其他分享 >Android 实现开机自启APP

Android 实现开机自启APP

时间:2023-08-17 11:11:17浏览次数:43  
标签:悬浮 APP 自启 Intent 开机 intent Android 权限

原文地址:https://www.cnblogs.com/stars-one/p/16329968.html

公司有个项目,需要实现自启动的功能,本来想着是设置桌面启动器的方式去实现,但是设备是华为平板(EMUI系统),不允许设置第三方桌面

且监听开机广播也无效,本来以为没法实现了,没想到公司的另一款APP确实支持,于是便是研究了下,发现监听开机广播的方式,还需要加上个悬浮窗权限即可实现功能

然后也是趁着机会来总结下

方法1(启动页)
在AndroidMainfest中,将首页的Activity设置一下属性即可

<activity
    android:name=".MainActivity"
    android:exported="true">
    <intent-filter>
        <category android:name="android.intent.category.HOME" />
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

 

方法2(监听开机广播)
使用静态广播实现自启功能

1.广播及权限声明
AndroidManifest文件中声明权限:

<!--    开机监听-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!--    悬浮窗-->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

 

声明广播:

<receiver
    android:name=".AutoStartReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter android:priority="1000">
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

 

2.广播类实现
AutoStartReceiver类代码实现:

public class AutoStartReceiver extends BroadcastReceiver {


    @Override
    public void onReceive(Context context, Intent intent) {
        //开机启动
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
            Intent thisIntent = new Intent(context, MainActivity.class);//设置要启动的app
            thisIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(thisIntent);
        }
    }
}

 

3.悬浮窗权限申请
在主Activity里申请悬浮窗权限

//检查是否已经授予权限,大于6.0的系统适用,小于6.0系统默认打开,无需理会
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.canDrawOverlays(this)) {
    //没有权限,须要申请权限,由于是打开一个受权页面,因此拿不到返回状态的,因此建议是在onResume方法中重新执行一次校验
    Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
    intent.setData(Uri.parse("package:" + getPackageName()));
    startActivity(intent);
}

 

测试补充
测试时候需要注意,使用这种方法,都是需要启动一次APP,之后自启才会实现

手中有台Android11的设备,测试发现不加悬浮窗,也是无法在开机后启动APP

而华为平板里的系统是Android10,所以断定Android 10以上估计都要申请悬浮窗权限才能实现

同事的手机是鸿蒙系统,加了悬浮窗还是无法自启

注意:
华为手机或平板都需要去设置应用的启动管理,其他系统可参考此设置

 

 

 

标签:悬浮,APP,自启,Intent,开机,intent,Android,权限
From: https://www.cnblogs.com/kinglandsoft/p/17637112.html

相关文章

  • [42]Trapping Rain Water
    ContentGivennnon-negativeintegersrepresentinganelevationmapwherethewidthofeachbaris1,computehowmuchwateritcantrapafterraining.Example1:Input:height=[0,1,0,2,1,0,1,3,2,1,2,1]Output:6Explanation:Theaboveelevationmap(bl......
  • [Microsoft Azure] 快速上手创建Azure App Service服务
    本文将带您快速了解如何使用MicrosoftAzure创建AzureAppService服务,让您在短时间内掌握这一流行的云计算平台。 MicrosoftAzure是一个功能强大的云计算平台,提供了广泛的云服务,包括虚拟机、数据库、存储等。在本篇博客中,我们将重点介绍AzureAppService服务的创建过程。A......
  • Unable to start activity Comandroid.content.res.Resources$NotFoundException: Str
    UnabletostartactivityComandroid.content.res.Resources$NotFoundException:StringresourceID#0x0 打开app->res->values->strings.xml文件添加<stringname="game_view_content_description">Gameview</string>......
  • ApplicationRunner用法
    ApplicationRunner用法原文链接:https://blog.csdn.net/weixin_41667076/article/details/121701303ApplicationRunner1.类型:接口2.方法:只定义了一个run方法3.使用场景:springBoot项目启动时,若想在启动之后直接执行某一段代码,就可以用ApplicationRunner这个接口,并实......
  • applicationrunner用法 是一个方便的接口,可以用于在应用程序启动后执行一些逻辑,比如数
    applicationrunner用法原文链接:https://wenku.csdn.net/answer/d8f7f4398bc786e79ed79f09b540878fApplicationRunner是SpringBoot中的一个用于运行应用程序的类。它可以帮助你快速启动和运行你的应用程序,而不需要写很多代码。你可以通过实现ApplicationRunner接口并重写run方法......
  • 基于tpshop开发tpshop多商户源码,tpshop商城源码,tpshop b2b2c源码-支持手机端+商家+
    tpshop多商户源码,tpshop商城源码,tpshopb2b2c源码-支持手机端+商家+门店+分销+淘宝数据导入+APP+可视化编辑tpshop商城源码算是thinkphp框架里做的比较早比较好的源码了,写法简明友好面向程序猿。这是一款前几年的版本虽然后台看着好了些,丝毫不影响功能的完整使用。前几年这......
  • 企业如何选择适合自己的APP商城研发平台?
    随着移动互联网的蓬勃发展,越来越多的企业纷纷意识到开发一款优质的APP商城对于扩大市场份额和提升用户体验的重要性。然而,对于很多企业来说,选择适合自身需求的APP商城研发平台却是一个颇具挑战性的任务。在众多可选的平台中,如何做出明智的选择,成为了每个企业亟需解决的问题。以下是......
  • 苹果APP上线操作流程
    在今天的移动应用市场中,苹果的AppStore是一个巨大的平台,吸引着无数开发者将他们的应用推向全球用户。然而,苹果App上线并不是一件简单的事情,涉及到一系列的步骤和要求。本文将为您详细介绍苹果App上线的操作流程。1.注册为苹果开发者:首先,您需要注册为苹果开发者,这可以通过苹果的开......
  • 如何配置Apple推送证书 push证书
    ​  转载:如何配置Apple推送证书push证书想要制作push证书,就需要使用快捷工具appuploader工具制作证书,然后使用Apple的推送功能配置push证书,就可以得到了。PS:push没有描述文件,所以不要问推送选择哪种描述文件类型。推送证书是用来配置在网站上推送的,放服务器的。不是用来......
  • 如何配置Apple推送证书 push证书
    ​  转载:如何配置Apple推送证书push证书想要制作push证书,就需要使用快捷工具appuploader工具制作证书,然后使用Apple的推送功能配置push证书,就可以得到了。PS:push没有描述文件,所以不要问推送选择哪种描述文件类型。推送证书是用来配置在网站上推送的,放服务器的。不是用来......