Android 屏幕唤醒 + 屏幕解锁 + 开机广播android.intent.action.BOOT_COMPLETED

这篇具有很好参考价值的文章主要介绍了Android 屏幕唤醒 + 屏幕解锁 + 开机广播android.intent.action.BOOT_COMPLETED。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android 屏幕唤醒 + 屏幕解锁 + 开机广播android.intent.action.BOOT_COMPLETED

1.内容说明

		Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播  流程:广播接收器 (屏幕唤醒 + 屏幕解锁 + 接收开机广播)
		代码如下:

2.代码

/**
 * @Author: Su
 * @Date: 2022/11/30
 * @Description:广播接收器
 */
public class BootupReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        Log.e("BootupReceiver---",intent.getAction());
        Toast.makeText(context,intent.getAction(),Toast.LENGTH_SHORT).show();
        //屏幕唤醒
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        @SuppressLint("InvalidWakeLockTag") PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "BootBroadcastReceiver");
        wl.acquire();

        //屏幕解锁
        KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
        KeyguardManager.KeyguardLock kl = km.newKeyguardLock("BootBroadcastReceiver");
        kl.disableKeyguard();

        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {

            // context, AutoRun.class
            Intent newIntent = new Intent(context, MainActivity.class);

            /* MyActivity action defined in AndroidManifest.xml */
            newIntent.setAction("android.intent.action.MAIN");

            /*
             * If activity is not launched in Activity environment, this flag is
             * mandatory to set
             */
            newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            /* if you want to start a service, follow below method */
            context.startActivity(newIntent);

        }


    }
}
/**
 * @Author: Su
 * @Date: 2022/11/30
 * @Description:清单文件配置广播接收器
 */
<receiver
            android:name=".receiver.BootupReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />

                <category android:name="android.intent.category.DEFAULT"/>

            </intent-filter>
        </receiver>
/**
 * @Author: Su
 * @Date: 2022/11/30
 * @Description:添加权限
 */
    <!--    开机监听-->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
     <!--    唤起APP-->
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
       <!--    悬浮窗权限-->
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

3.常见问题

Android API Level8以上的时候,程序可以安装在SD卡上。如果程序安装在SD卡上,那么在BOOT_COMPLETED广播发送之后,SD卡才会挂载,因此程序无法监听到该广播。

4.解决方案

清单文件 目录下添加:
android:installLocation=“internalOnly”

5.android:installLocation说明

android:installLocation的属性有"auto"、“internalOnly”、“preferExternal

auto:程序可能被安装在外部存储介质上(例如:SD Card),但是默认会被安装到手机内存中.当手机内存为空时,程序将被安装到外部存储介质上.当程序安装到手机上后,用户可以决定把程序放在外部储介质还是内存中.
internalOnly:默认值.当设置为该值时,程序只能被安装在内存中,如果内存为空,则程序将不能成功安装.
preferExternal:将程序安装在外部存储介质上,但是系统不保证程序一定会被安装到外部存储介质上.当外部存储介质不可以或空时,程序将被安装到内存中.程序使用了forward-locking机制时也将被安装到内存中,因为外部存储不支持此机制.程序安装后,用户可以自由切换程序应该在外部还是内部存储介质上.

意见反馈

如果各位大佬有什么意见可以提出来,进行修改,欢迎各位大佬提出问题!!!文章来源地址https://www.toymoban.com/news/detail-414650.html

到了这里,关于Android 屏幕唤醒 + 屏幕解锁 + 开机广播android.intent.action.BOOT_COMPLETED的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • android使用相机 intent.resolveActivity returns null

    笔者使用java进行android开发,启动相机时 intent.resolveActivity returns null 笔者使用如下代码启动相机 控制台报错: 步骤1、 在packageappsrcmainAndroidManifest.xml中配置如下内容: 具体操作如下图所示: 具体代码: 问题产生的原因是在Android 11及更高版本中,由于引入了更严格的权限

    2024年01月21日
    浏览(44)
  • 无涯教程-Android Intent Standard Extra Data函数

    下表列出了各种重要的Android Intent Standard Extra Data。您可以查看Android官方文档以获取额外数据的完整列表- Sr.No Extra Data Description 1 EXTRA_ALARM_COUNT 用作AlarmManager intents(意图)中的int Extra字段,以告诉正在调用的应用程序intents(意图)释放了多少未决警报。 2 EXTRA_ALLOW_MULTIPLE 用于指示

    2024年02月10日
    浏览(52)
  • Android 13 针对 Intent filters 安全的再加强

    作者:李龙、TechMerger 君 在看这个变更之前,我们需要回忆下 Android 12 的一个安全性变更, 即声明了 intent-filter 的Activity、BroadcastReceiver、Service 必须声明 android:exported , 否则将会无法被启动。 Android 12 的这个变更是为了防止开发者在不知情的情况下,声明了一个 intent-filte

    2024年02月07日
    浏览(34)
  • Android Activity启动流程一:从Intent到Activity创建

    关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 学习前,建议有相关知识储备: 【Android 基础】 应用(Application)启动流程 通过本文你可以学习到Activity启动流

    2024年02月10日
    浏览(44)
  • Android开发-Activity中“android:exported“属性的作用,以及“Permission Denial: starting Intent“错误解决

    如何在一个应用程序中,启动另外一个应用程序?最近正有这样的需求,也踩了一个小坑。本节介绍使用Activity中\\\"android:exported\\\"属性来实现这种访问。 Activity中\\\"android:exported\\\"属性说明: 在程序清单AndroidMenifest.xml文件中,可以设置这个属性。 Android中的Activity中\\\"android:exported\\\"属

    2024年02月06日
    浏览(48)
  • Android Studio:Intent与组件通信实现页面跳转功能

    📌Android Studio 专栏正在持续更新中,案例的原理图解析、各种模块分析💖这里都有哦,同时也欢迎大家订阅专栏,获取更多详细信息哦✊✊✊ ✨个人主页:零小唬的博客主页 🥂欢迎大家 👍点赞 📨评论 🔔收藏 ✨作者简介:20级计算机专业学生一枚,来自宁夏,可能会去

    2024年02月05日
    浏览(54)
  • Android kotlin系列讲解(入门篇)使用Intent在Activity之间穿梭

    返回总目录 上一篇: Android kotlin系列讲解(入门篇)Activity的理解与基本用法        你应该已经对创建 Activity 的流程比较熟悉了,那我现在在 ActivityTest 项目再快速地创建一个 Activity 。        还是右击 com.example.activitytest 包→ New → Activity → Empty Views Activity ,会弹出

    2024年02月12日
    浏览(36)
  • Android 11及以上出现 Intent.resolveActivity(context.getPackageManager()) == null的处理

    1、使用场景: App调用系统相机拍照设置图片。 2、问题描述:  targetSdkVersion = android 11的之后,以下代码captureIntent.resolveActivity(context.getPackageManager()) 直接返回了null。 3、系统环境: Android 11 , targetSdkVersion == 33 4、解决方案: (1)调用系统应用时: 方案1:在清单文件中添加

    2024年02月13日
    浏览(38)
  • iOS-自定义Intent及ShortCut,能通过快捷指令唤醒APP并跳转到指定页面

    创建完成后,在intents文件中勾选以下target,否则在扩展里,无法访问到前面创建的Intent类 编译程序,Xcode 会自动生成对应的类,我这里的话会生成 LaunchAppIntent 类,下面需要使用 引入上述生成的文件,并写入代理,如果之前未勾选target是无法引入的 在代理中写入,以及点击

    2024年01月23日
    浏览(55)
  • android服务启动失败Unable to start service Intent U=0: not found

    android启动服务失败,提示:Unable to start service Intent { cmp=xxx/.xxx} U=0: not found。检查清单文件服务配置没有错,启动服务的方法也没错。 场景:我的程序是系统应用,运行于9.0,作为launcher使用,在application onCreate中启动服务。试过延迟启动服务和配置action和Package的方式启动服

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包