使用ACTION_MANAGE_OVERLAY_PERMISSION在后台启动活动

艾哈迈德

我想使用ACTION_MANAGE_OVERLAY_PERMISSION在后台启动一个活动(即使该应用被终止)。仅当应用程序在前台时才起作用。我的代码如下;

1.清单文件

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

 <receiver
        android:name=".digitalclock.DigitalClockReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.SCREEN_ON" />
            <action android:name="android.intent.action.SCREEN_OFF" />
        </intent-filter>
    </receiver>

2广播接收器

 override fun onReceive(context: Context?, intent: Intent?) {

    if (intent?.action.equals(Intent.ACTION_SCREEN_OFF)) {

     
        if (Build.VERSION.SDK_INT >= 29) {
            val intent2 = Intent(context, DigitalClockActivity::class.java)
            intent2.putExtra("unlock_screen", true)
            intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            context?.startActivity(intent2)
        } 

        }
    }

我还在广播中启动了一项服务,即使该应用被终止,它也始终会收到意图过滤器。服务类也开始,但活动未开始。

Android开发人员

尝试更换

val intent2 = Intent(context, DigitalClockActivity::class.java)

带有硬编码的包和类名

val i = Intent();
i.setClassName("com.test", "com.test.DigitalClockActivity")

将包和活动类名称更改为您自己的!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章